Materials
Files
- MaterialAluminiumComponent.cs
This file defines a Grasshopper component named `MaterialAluminiumComponent` that generates an aluminium material model for finite element analysis. It accepts three inputs: a custom name, a manufacturing type (Wrought, Cast-Mold, or Cast-Sand), and a specific alloy designation. The core logic constructs a `MaterialModel` object populated with standard physical properties, such as a Young’s Modulus of ~69 GPa, Poisson’s ratio of 0.33, and density of 2.714 g/cm³. Notably, the code contains a minor bug where the output parameter is labeled "Steel material" despite creating an Aluminium instance. Finally, it outputs this configured material object to be used in downstream simulation workflows.
- MaterialConcreteComponent.cs
This file defines a Grasshopper component, `MaterialConcreteComponent`, designed to generate concrete material properties for finite element analysis within the FeMM framework. It accepts user inputs for a custom name, a selected concrete grade from a predefined list (including Eurocode and PSI standards), and a boolean flag for precast status. The core logic maps these inputs to specific mechanical properties, such as modulus of elasticity, shear modulus, and compressive strength, using a switch statement based on the selected grade index. Additionally, it assigns default physical constants like Poisson’s ratio and density, while distinguishing between standard and precast material kinds. Finally, the component packages these calculated values into a `GH_Material` object and outputs it for downstream use in structural simulations.
- MaterialCustomComponent.cs
This file defines `MaterialCustomComponent`, a Grasshopper plugin component for creating custom material definitions within the FeMM framework. It accepts user inputs for material properties such as name, kind, units, and mechanical parameters like modulus, density, and strength. The component dynamically updates input parameter descriptions based on the selected unit system (e.g., SI, Nmm) to ensure clarity. During execution, it converts all physical values into a consistent default unit system using helper utilities. Finally, it constructs a `MaterialModel` object, applying specific logic for different material kinds like steel or concrete, and outputs the result as a `GH_Material`.
- MaterialSteelComponent.cs
This file defines a Grasshopper component named `MaterialSteelComponent` that generates standardized steel material properties for finite element analysis. It accepts two inputs—a custom name and a grade selection from a dropdown list of four common European steel grades (S235 to S450)—and outputs a populated `GH_Material` object. The component automatically assigns fixed physical constants like Young's modulus, Poisson's ratio, and density, while dynamically setting yield and tensile stress values based on the selected grade via a switch statement. Key components include input parameter registration for user configuration, a data processing method (`SolveInstance`) that constructs the material model, and metadata definitions for the Grasshopper interface. This tool streamlines structural modeling by providing consistent, code-defined material data without manual entry.
- MaterialTableComponent.cs
This file defines a Grasshopper component named `MaterialTableComponent` that generates a material definition for the FeMM framework. It accepts user inputs such as material name, mechanical properties (shear modulus, density, thermal expansion), and optional Poisson ratio settings. The component specifically requires paired lists of stress and strain data to construct a constitutive relationship. During execution, it validates input consistency, ensuring the stress and strain lists are equal in length and checking physical bounds for the Poisson ratio. Upon successful validation, it compiles these inputs into a `MaterialModel` object and outputs it as a generic Grasshopper data type.