chrono::fea Namespace Reference

Description

Namespace with classes for the FEA module.

Namespaces

 ChRotUtils
 Utility functions for rotations in 3D and their derivatives.
 

Classes

class  ChContinuumMaterial
 Base class for properties of materials in a continuum. More...
 
class  ChContinuumElastic
 Class for the basic properties of materials in an elastic continuum. More...
 
class  ChContinuumElastoplastic
 Class for all elastic materials that can undergo plastic flow. More...
 
class  ChContinuumPlasticVonMises
 Class for the basic properties of materials in an elastoplastic continuum, with strain yeld limit based on Von Mises yeld. More...
 
class  ChContinuumDruckerPrager
 Class for the basic properties of elastoplastic materials of Drucker-Prager type, that are useful for simulating soils. More...
 
class  ChVoightTensor
 Base class for stress and strain tensors, in compact Voight notation that is with 6 components in a column. More...
 
class  ChStressTensor
 Class for stress tensors, in compact Voight notation that is with 6 components in a column. More...
 
class  ChStrainTensor
 Class for strain tensors, in compact Voight notation that is with 6 components in a column. More...
 
class  ChBeamSection
 Base class for properties of beam sections. More...
 
class  ChBeamSectionBasic
 Basic geometry for a beam section in 3D, along with basic material properties (zz and yy moments of inertia, area, Young modulus, etc.) This material can be shared between multiple beams. More...
 
class  ChBeamSectionAdvanced
 Geometry for a beam section in 3D, along with basic material properties. More...
 
class  ChBeamSectionCable
 Simplified geometry for a 'cable' beam section in 3D, that is a beam without torsional stiffness and with circular section (i.e.same Ixx and Iyy properties). More...
 
class  ChBuilderBeam
 Class for an helper object that provides easy functions to create complex beams, for example subdivides a segment in multiple finite elements. More...
 
class  ChBuilderBeamANCF
 Class for an helper object that provides easy functions to create complex beams of ChElementCableANCF class, for example subdivides a segment in multiple finite elements. More...
 
class  ChContactSurface
 Base class for contact surfaces in FEA meshes. More...
 
class  ChContactTriangleXYZ
 Contact element of triangular type. More...
 
class  ChContactTriangleXYZROT
 Contact element of triangular type - version for triangles where the nodes are of ChNodeFEAxyzrot type. More...
 
class  ChContactSurfaceMesh
 Class which defines a contact surface for FEA elements, using a mesh of triangles. More...
 
class  ChContactNodeXYZ
 Proxy to FEA nodes, to grant them the features needed for collision detection. More...
 
class  ChContactNodeXYZsphere
 Proxy to FEA nodes for collisions, with spheres associated to nodes, for point-cloud type of collisions. More...
 
class  ChContactNodeXYZROT
 Proxy to FEA nodes with 3 xyz + 3 rot coords, to grant them the features needed for collision detection. More...
 
class  ChContactNodeXYZROTsphere
 Proxy to FEA nodes for collisions, with spheres associated to nodes, for point-cloud type of collisions. More...
 
class  ChContactSurfaceNodeCloud
 Class which defines a contact surface for FEA elements, where only xyz nodes in the FEA model are used as contact items for the collision detection. More...
 
class  ChContinuumElectrostatics
 Class for material for FEA electrostatic problems. More...
 
class  ChContinuumPoisson3D
 Class for the basic properties of scalar fields P in 3D FEM problems that can be described by Laplace PDEs of type rho dP/dt + div [C] grad P = 0. More...
 
class  ChContinuumThermal
 Class for thermal fields, for FEA problems involving temperature, heat, etc. More...
 
class  ChElement3D
 Class for all 3-Dimensional elements. More...
 
class  ChElementBar
 Simple finite element with two nodes and a bar that connects them. More...
 
class  ChElementBase
 Base class for all finite elements, that can be used in the ChMesh physics item. More...
 
class  ChElementBeam
 Base class for most structral elements of 'beam' type. More...
 
class  ChMaterialBeamANCF
 Material definition. More...
 
class  ChElementBeamANCF
 ANCF beam element with 3 nodes. More...
 
class  ChElementBeamEuler
 Simple beam element with two nodes and Euler-Bernoulli formulation. More...
 
class  ChElementBrick
 Brick element with 8 nodes (with EAS). More...
 
class  ChElementBrick_9
 Brick element with 9 nodes. More...
 
class  ChElementCableANCF
 Simple beam element with two nodes and ANCF gradient-deficient formulation. More...
 
class  ChElementCorotational
 Class for corotational elements (elements with rotation matrices that follow the global motion of the element) More...
 
class  ChElementGeneric
 Class for all elements whose stiffness matrix can be seen as a NxN block-matrix to be splitted between N nodes. More...
 
class  ChElementHexa_20
 Class for FEA elements of hexahedron type (isoparametric 3D bricks) with 20 nodes. More...
 
class  ChElementHexa_8
 Class for FEA elements of hexahedron type (isoparametric 3D bricks) with 8 nodes. More...
 
class  ChElementHexahedron
 Class for hexahedral elements. More...
 
class  ChElementShell
 Base class for most structral elements of 'shell' type. More...
 
class  ChMaterialShellANCF
 Material definition. More...
 
class  ChElementShellANCF
 ANCF laminated shell element with four nodes. More...
 
class  ChElementShellReissner4
 Shell with geometrically exact kinematics, with 4 nodes. More...
 
class  ChElementSpring
 Simple finite element with two nodes and a spring/damper between the two nodes. More...
 
class  ChElementTetra_10
 Tetahedron FEA element with 10 nodes. More...
 
class  ChElementTetra_4
 Tetahedron FEA element with 4 nodes. More...
 
class  ChElementTetra_4_P
 Tetahedron FEM element with 4 nodes for scalar fields (for Poisson-like problems). More...
 
class  ChElementTetrahedron
 Class for tetrahedral elements. More...
 
class  ChFaceBrick_9
 Face of a linear ChElementBrick_9 tetrahedron. More...
 
class  ChFaceHexa_8
 Face of a linear ChElementHexa_8 hexahedron. More...
 
class  ChFaceTetra_4
 Face of a linear ChElementTetra_4 tetrahedron. More...
 
class  ChGaussIntegrationRule
 Class for the management of the Gauss Quadrature in 1D, 2D or 3D space. More...
 
class  ChGaussPoint
 Class for a gauss point, that has a position (1D-3D) and a weight. More...
 
class  ChLinkDirFrame
 Class for creating a constraint between the direction of a FEA node of ChNodeFEAxyzD class, and a ChBodyFrame (frame). More...
 
class  ChLinkInterface
 Class for grouping all those constraints that can interface FEA elements of different types. More...
 
class  ChLinkPointFrame
 Class for creating a constraint between an FEA node of ChNodeFEAxyz type and a ChBodyFrame (frame) object. More...
 
class  ChLinkPointPoint
 Class for creating a constraint between two xyz FEA nodes (points). More...
 
class  ChTriangleOfXYZnodes
 Utility class for using the ChLinkPointTriface constraint. More...
 
class  ChLinkPointTriface
 Class for creating a constraint between a xyz FEA node (point) and a triangular face given by three xyz FEA nodes, with linear shape function (ex. More...
 
class  ChTriangleOfXYZROTnodes
 Utility class for using the ChLinkPointTriface constraint. More...
 
class  ChLinkPointTrifaceRot
 Class for creating a constraint between a xyz FEA node (point) and a triangular face given by three xyzrot FEA nodes, with linear shape function (ex. More...
 
class  ChLoadContactSurfaceMesh
 Class for applyings loads to a contact mesh as a cluster of forces operating on the nodes of the underlying finite elements. More...
 
class  ChLoaderBeamWrench
 Atomic wrench. More...
 
class  ChLoadBeamWrench
 Atomic wrench (ready to use load) Load for a wrench (force+torque) at a specific position of a beam. More...
 
class  ChLoaderBeamWrenchDistributed
 Distributed constant wrench. More...
 
class  ChLoadBeamWrenchDistributed
 Distributed constant wrench (ready to use load) Load for a wrench (force+torque) at a specific position of a beam. More...
 
class  ChMaterialShellReissner
 Base class for all meterials to be used for 6-field Reissner-Mindlin shells (kinematically-exact shell theory) as in Witkowski et al. More...
 
class  ChMaterialShellReissnerIsothropic
 Material definition. More...
 
class  ChMaterialShellReissnerOrthotropic
 Material definition. More...
 
class  ChMatrixCorotation
 Perform a corotation (warping) of a K matrix by pre- or post- multiplying it with a C matrix that has 3x3 rotation matrices R as diagonal blocks, so that C*K means: [R ] [ ] [ R ] *[ K ] [ R] [ ]. More...
 
class  ChNodeMeshless
 Class for a single node in the meshless FEA cluster. More...
 
class  ChMatterMeshless
 Class for clusters of nodes that can simulate a visco-elasto-plastic deformable solid using the approach in Mueller ("Point based.." 2004 paper), that is with a 'meshless' FEA approach. More...
 
class  ChMesh
 Class which defines a mesh of finite elements of class ChElementBase, between nodes of class ChNodeFEAbase. More...
 
class  ChMeshFileLoader
 Collection of mesh file loader utilities. More...
 
class  ChMeshSurface
 Class which defines a surface for a mesh FEA elements. More...
 
class  ChNodeFEAbase
 Base class for a generic finite element node that can be stored in ChMesh containers. More...
 
class  ChNodeFEAcurv
 Generic finite element node with 9 degrees of freedom representing curvature. More...
 
class  ChNodeFEAxyz
 Class for a generic 3D finite element node, with x,y,z displacement. More...
 
class  ChNodeFEAxyzD
 Class for a generic 3D finite element node, with x,y,z displacement and a direction. More...
 
class  ChNodeFEAxyzDD
 Class for a generic 3D finite element node, with x,y,z displacement, direction, and one curvature vector OR additional direction. More...
 
class  ChNodeFEAxyzP
 Class for a generic finite element node in 3D space, with scalar field P. More...
 
class  ChNodeFEAxyzrot
 Class for a generic ED finite element node, with x,y,z displacement and a 3D rotation. More...
 
class  ChPolarDecomposition
 Perform a polar decomposition of a 3x3 P matrix in order to retrieve the orthogonal Q and the symmetric S form, as P=Q*S. More...
 
class  ChVisualizationFEAmesh
 Class for a FEA mesh visualization. More...
 

Typedefs

typedef double(* LI_Type )(const double xi[2])
 
typedef double(* LI_J_Type )(const double xi[2])
 

Functions

int mysgn (double val)
 
template<int N>
bool LU_factor (ChMatrixNM< double, N, N > &A, ChMatrixNM< int, N, 1 > &INDX, bool &pivoting)
 In-place LU factorization. More...
 
template<int N>
void LU_solve (const ChMatrixNM< double, N, N > &A, const ChMatrixNM< int, N, 1 > &INDX, ChMatrixNM< double, N, 1 > &B)
 LU linear system solution (back substitution) More...
 
ChVector< float > & FetchOrAllocate (std::vector< ChVector< float >> &mvector, unsigned int &id)
 
void TriangleNormalsReset (std::vector< ChVector<>> &normals, std::vector< int > &accumul)
 
void TriangleNormalsCompute (ChVector< int > norm_indexes, ChVector< int > vert_indexes, std::vector< ChVector<>> &vertexes, std::vector< ChVector<>> &normals, std::vector< int > &accumul)
 
void TriangleNormalsSmooth (std::vector< ChVector<>> &normals, std::vector< int > &accumul)
 

Function Documentation

template<int N>
bool chrono::fea::LU_factor ( ChMatrixNM< double, N, N > &  A,
ChMatrixNM< int, N, 1 > &  INDX,
bool &  pivoting 
)

In-place LU factorization.

Return false if the matrix is (close to) singular

Parameters
[in,out]Amatrix to be factorized
[out]INDXvector of pivots
[out]pivotingtrue if pivoting was required; false otherwise
template<int N>
void chrono::fea::LU_solve ( const ChMatrixNM< double, N, N > &  A,
const ChMatrixNM< int, N, 1 > &  INDX,
ChMatrixNM< double, N, 1 > &  B 
)

LU linear system solution (back substitution)

Parameters
[in]ALU factorized matrix
[out]INDXvector of pivots
[in,out]Bon entry, the RHS; on return, the solution vector