List of FEA elements
Table of Contents
Different types of finite elements can be used in the FEA module. In this page you can find a description of their properties.
- An element connects N nodes.
- Nodes are handled via std::shared_ptr shared pointers: you do not have to worry about deleting them.
- Add elements to a mesh using ChMesh::AddElement()
- Initialize the elements by telling which node are connected with SetNodes()
- Set a material property to the element by using SetMaterial()
ChElementSpring
- 2 nodes of ChNodeFEAxyz type
- Large displacements allowed
- Zero mass element
- Parameters:
- rest length L,
- stiffness k,
- damping r
- The simpliest element: a starting point to learn how to implement finite elements
ChElementBar
- 2 nodes of ChNodeFEAxyz type
- Very similar to ChElementSpring, except it has a mass
- No torque at the ends (like two spherical joints)
- Large displacements allowed
- Parameters:
- rest length L,
- Section area A,
- Young modulus E,
- damping
ChElementTetra_4
- 4 nodes of ChNodeFEAxyz type
- Linear interpolation, constant stress
- 1 integration point
- Corotational formulation for large displacements
- Uses polar decomposition for corotated frame
- Useful for solids
- Fastest element for solids
ChElementTetra_10
- 10 nodes of ChNodeFEAxyz type
- Quadratic interpolation, linear stress
- 4 integration points
- Corotational formulation for large displacements
- Uses polar decomposition for corotated frame
- Note: initial position assuming nodes n>4 exactly at mid-length of edges
- Useful for solids
ChElementHexa_8
- 8 nodes of ChNodeFEAxyz type
- Linear interpolation
- 8 integration points
- Corotational formulation for large displacements
- Useful for solids, with structured grids
ChElementHexa_20
- 20 nodes of ChNodeFEAxyz type
- 8 at vertexes, 12 at edges midpoints
- Quadratic interpolation
- 27 integration points
- Corotational formulation for large displacements
- Useful for solids, with structured grids
ChElementBrick
- 8 nodes of ChNodeFEAxyz type
- Linear interpolation
- 8 integration points
- Use EAS Enhanced Assumed Strain
- Large strains
- Can use Mooney-Rivlin model for hyperelastic materials
- Useful for solids, with structured grids
ChElementBrick_9
- 9 nodes of ChNodeFEAxyz type (8 at the corners, 1 at the center)
- Linear interpolation
- 8 integration points
- Strain formulations for large strains:
- Green-Lagrange
- Hencky
- Plasticity:
- J2 (metals)
- DruckerPrager (soil, plastics)
- DruckerPrager_Cap (soil, plastics)
- Useful for solids, with structured grids
ChElementCableANCF
- 2 nodes of chrono::fea::ChNodeFEAxyzD type
- 3 integration point (stiffness), 4 (mass)
- ANCF formulation for large displacements
- Thin beam (no shear)
- Does not model torsional stiffness (useful for wires, cables)
- Section property: A, I, E, density, damping
ChElementBeamANCF
- 3 nodes of chrono::fea::ChNodeFEAxyzDD type
- ANCF formulation for large displacements
- Section property: rectangular width-height, E, Poisson ratio, shear correction factors, density
ChElementBeamEuler
- 2 nodes of chrono::fea::ChNodeFEAxyzrot type
- Linear interpolation
- 1 integration point (default)
- Corotational formulation for large displacements
- Thin beam (no shear), based on the Euler-Bernoulli thin beam theory
- Section property:
- A, Iyy, Izz, E, density, damping
- G, J for torsional stiffness, plus optional:
- αe , ze , ye , for offset/rotated section
- zs , ys for offset shear center
ChElementBeamIGA
- Isogeometric formulation (IGA) of a Cosserat rod, with large displacements
- User-defined order n (ex: 1=linear 2=quadratic, 3=cubic).
- Each element is a span of a b-spline, so each element uses n+1 control points, ie. nodes of chrono::fea::ChNodeFEAxyzrot type
- Thick beam shear effects are possible, v. Timoshenko theory
- Reduced integration to correct shear locking
- Initial curved configuration is supported
- Suggestion: use ChBuilderBeamIGA for easy creation a full B-spine, ie. given full knot sequence and points as in the second figure above.
- Section defined in a modular way, with
- Elasticity model
- Plasticity model (optional)
- Damping model (optional)
- Already available models:
ChElementShellReissner
- 4 nodes of chrono::fea::ChNodeFEAxyzrot type
- Bi-linear interpolation
- 4 integration points (default)
- Allows large displacements, exponential map used for SO3
- Thick shells allowed
- Based on the Reissner 6-field shell theory (w. drilling stiffness)
- Can have multi-layered materials, using CLT thory
- ANS, shear-lock free
- Nodes need not to be aligned to shell (rotation offsets auto-computed in initialization)
ChElementShellANCF
- 4 nodes of chrono::fea::ChNodeFEAxyzD type
- Bi-linear interpolation
- 4 integration points (default)
- Allows large displacements, using ANCF formulation
- Thick shells allowed
- Can have multi-layered materials
- ANS-EAS, shear-lock free
- Nodes D must be aligned to shell normal at initialization
ChElementShellANCF_8
- 8 nodes of chrono::fea::ChNodeFEAxyzDD type
- Higher order interpolation
- Allows large displacements, using ANCF formulation
- Thick shells allowed
- Can have multi-layered materials
- ANS-EAS, shear-lock free
- Nodes D must be aligned to shell normal at initialization
ChElementShellBST
- Triangular thin-shell
- 6 nodes of chrono::fea::ChNodeFEAxyz type
- 1,2,3 from the triangle
- 4,5,6 from the neighbouring triangles (any can be optional if on the boundary)
- Constant strain, constant curvature computed from bent triangle neighbours
- Allows large deformation
- Can have multi-layered materials
- Based on Kirchhoff-Love theory (no shear), good for tissues, sails, etc.
- Section defined with
- Elasticity model
- Plasticity model (optional)
- Damping model (optional)
- Already available models:
- chrono::fea::ChElasticityKirchhoffIsotropic
- chrono::fea::ChElasticityKirchhoffOrthotropic
- chrono::fea::ChElasticityKirchhoffGeneric
- …
Theory
Additional information regarding the implementation of finite elements in Chrono can be found at the
whitepapers page.
Examples
See demos and examples at the tutorials page.