Class for creating a 3D linearized four-node shell element in a mesh. More...
#include <lin3DShell4.hpp>


Public Member Functions | |
| lin3DShell4 (const std::vector< unsigned int > nodes, std::unique_ptr< Section > §ion, const std::string quadrature="GAUSS", const unsigned int nGauss=9) | |
| Creates a lin3DShell4 in a finite element Mesh. More... | |
| ~lin3DShell4 () | |
| Destroys this lin3DShell4 object. More... | |
| void | CommitState () |
| Save the material states in the element. More... | |
| void | ReverseState () |
| Reverse the material/section states to previous converged state in this element. More... | |
| void | InitialState () |
| Brings the material/section state to its initial state in this element. More... | |
| void | UpdateState () |
| Update the material states in the element. More... | |
| void | SetDomain (std::map< unsigned int, std::shared_ptr< Node > > &nodes) |
| Sets the finite element dependance among objects. More... | |
| void | SetDamping (const std::shared_ptr< Damping > &damping) |
| Sets the damping model. More... | |
| std::vector< unsigned int > | GetTotalDegreeOfFreedom () const |
| Gets the list of total-degree of freedom of this Element. More... | |
| Eigen::MatrixXd | GetStrain () const |
| Gets the material/section (generalised) strain. More... | |
| Eigen::MatrixXd | GetStress () const |
| Gets the material/section (generalised) stress. More... | |
| Eigen::MatrixXd | GetStrainRate () const |
| Gets the material/section (generalised) strain-rate. More... | |
| Eigen::MatrixXd | GetStrainAt (double x3, double x2) const |
| Gets the material strain in section at coordinate (x3,x2). More... | |
| Eigen::MatrixXd | GetStressAt (double x3, double x2) const |
| Gets the material stress in section at coordinate (x3,x2). More... | |
| Eigen::VectorXd | GetVTKResponse (std::string response) const |
| Gets the element internal response in VTK format for Paraview display. More... | |
| double | ComputeEnergy () |
| Computes the element energy for a given deformation. More... | |
| Eigen::MatrixXd | ComputeMassMatrix () |
| Compute the lumped/consistent mass matrix of the element. More... | |
| Eigen::MatrixXd | ComputeStiffnessMatrix () |
| Compute the stiffness matrix of the element using gauss-integration. More... | |
| Eigen::MatrixXd | ComputeDampingMatrix () |
| Compute the damping matrix of the element using gauss-integration. More... | |
| Eigen::MatrixXd | ComputePMLMatrix () |
| Compute the PML history matrix using gauss-integration. More... | |
| Eigen::VectorXd | ComputeInternalForces () |
| Compute the internal (elastic) forces acting on the element. More... | |
| Eigen::VectorXd | ComputeInternalDynamicForces () |
| Compute the elastic, inertial, and viscous forces acting on the element. More... | |
| Eigen::VectorXd | ComputeSurfaceForces (const std::shared_ptr< Load > &surface, unsigned int face) |
| Compute the surface forces acting on the element. More... | |
| Eigen::VectorXd | ComputeBodyForces (const std::shared_ptr< Load > &body, unsigned int k=0) |
| Compute the body forces acting on the element. More... | |
| Eigen::VectorXd | ComputeDomainReductionForces (const std::shared_ptr< Load > &drm, unsigned int k) |
| Compute the domain reduction forces acting on the element. More... | |
Public Member Functions inherited from Element | |
| Element (std::string name, const std::vector< unsigned int > nodes, unsigned int ndofs, unsigned int VTKcell, unsigned int SVLcell) | |
| Creates an Element in a finite element Mesh. More... | |
| virtual | ~Element ()=0 |
| Destroys this Element object. More... | |
| std::string | GetName () const |
| Gets the Element Name. More... | |
| unsigned int | GetVTKCellType () const |
| Gets the Element VTK cell type. More... | |
| unsigned int | GetVTKGroupType () const |
| Gets the Element VTK group type. More... | |
| unsigned int | GetNumberOfNodes () const |
| Returns the number of nodes in element. More... | |
| unsigned int | GetNumberOfDegreeOfFreedom () const |
| Returns total number of degree of freedom in the element. More... | |
| const std::vector< unsigned int > & | GetNodes () const |
| Returns the Node Connectivity Indexes. More... | |
| bool | HasFixedNode (const std::vector< std::shared_ptr< Node > > &nodes) const |
| Returns if the element has fixed nodes. More... | |
Private Member Functions | |
| double | ComputeTotalMass () |
| Computes the total element mass. More... | |
| Eigen::MatrixXd | ComputeLocalAxes () const |
| Compute/update the local axis-1-2-3 of the element. More... | |
| Eigen::MatrixXd | ComputeRotation () const |
| Compute/update the projection axis of the element. More... | |
| Eigen::MatrixXd | ComputeLocalCoordinates () const |
| Compute/update the node coordinates in axis-1-2-3 of the element. More... | |
| Eigen::VectorXd | ComputeStrain (Eigen::MatrixXd &BM12, Eigen::MatrixXd &xyloc, double ri, double si) |
| Update strain in the element. More... | |
| Eigen::VectorXd | ComputeStrainRate (Eigen::MatrixXd &BM12, Eigen::MatrixXd &xyloc, double ri, double si) |
| Update strain rate in the element. More... | |
| Eigen::MatrixXd | ComputeConstantTensionMatrix () |
| Correction matrix to Enforce Constant Tension for membrane effect (wilson). More... | |
| void | AssemblePlateMembraneEffects (Eigen::MatrixXd &A, const Eigen::MatrixXd &Am, const Eigen::MatrixXd &Ap) |
| Assembles the membrane and plate effects into a single matrix. More... | |
| void | ConstantTensionMatrix (const double ri, const double si, const Eigen::MatrixXd &xyloc, Eigen::MatrixXd &BM12, Eigen::MatrixXd &Jij) |
| Evaluates the Constant Tension matrix and Jacobian for membrane effect at a given Gauss point. More... | |
| void | ComputeLoadShapeFunctionMatrix (const double ri, const double si, const Eigen::MatrixXd &xyloc, Eigen::MatrixXd &Hij, Eigen::MatrixXd &Jij) |
| Evaluates the shape function matrix for plate at a given Gauss point. More... | |
| void | ComputePlateShapeFunctionMatrix (const double ri, const double si, const Eigen::MatrixXd &xyloc, Eigen::MatrixXd &Hij, Eigen::MatrixXd &Jij) |
| Evaluates the shape function matrix for plate at a given Gauss point. More... | |
| void | ComputeMembraneShapeFunctionMatrix (const double ri, const double si, const Eigen::MatrixXd &xyloc, Eigen::MatrixXd &Hij, Eigen::MatrixXd &Jij) |
| Evaluates the shape function matrix for membrane at a given Gauss point. More... | |
| void | ComputePlateStrainDisplacementMatrix (const double ri, const double si, const Eigen::MatrixXd &xyloc, Eigen::MatrixXd &Bij, Eigen::MatrixXd &Jij) |
| Evaluates the strain-displacement matrix for a plate effect at a given Gauss point. More... | |
| void | ComputeMembraneStrainDisplacementMatrix (const double ri, const double si, const Eigen::MatrixXd &xyloc, const Eigen::MatrixXd &Bij, Eigen::MatrixXd &BM12, Eigen::MatrixXd &Pij, Eigen::MatrixXd &Jij) |
| Evaluates the strain-displacement matrix for membrane effect at a given Gauss point. More... | |
| Eigen::MatrixXd | ComputeInitialStiffnessMatrix () |
| Compute the initial stiffness matrix of the element. More... | |
Private Attributes | |
| std::shared_ptr< Damping > | theDamping |
| The Damping model. More... | |
| std::vector< std::shared_ptr< Node > > | theNodes |
| The Element's Nodes. More... | |
| std::vector< std::unique_ptr< Section > > | theSection |
| The Element's Sections. More... | |
| std::unique_ptr< QuadratureRule > | QuadraturePoints |
| Coordinate of Gauss points. More... | |
Class for creating a 3D linearized four-node shell element in a mesh.
| lin3DShell4::lin3DShell4 | ( | const std::vector< unsigned int > | nodes, |
| std::unique_ptr< Section > & | section, | ||
| const std::string | quadrature = "GAUSS", |
||
| const unsigned int | nGauss = 9 |
||
| ) |
Creates a lin3DShell4 in a finite element Mesh.
| nodes | The Node connectivity array of this Element. |
| section | Pointer to the Section that this Element is made out of. |
| nGauss | Number of Gauss-integration points. |
| quadrature | The integration rule to be employed. |
| lin3DShell4::~lin3DShell4 | ( | ) |
Destroys this lin3DShell4 object.
|
private |
Assembles the membrane and plate effects into a single matrix.
| A | The matrix with the shell behavior. |
| Am | The matrix with the membrane contribution. |
| Ap | The matrix with the plate contribution. |
|
virtual |
|
virtual |
Compute the body forces acting on the element.
| body | Pointer to the Load object that contains this information. |
| k | The time step at which the body load is evaluated. |
Implements Element.
|
private |
Correction matrix to Enforce Constant Tension for membrane effect (wilson).
|
virtual |
Compute the damping matrix of the element using gauss-integration.
Implements Element.
|
virtual |
Compute the domain reduction forces acting on the element.
| drm | Pointer to the DRM Load object that contains this information. |
| k | The time step at which the body load is evaluated. |
Implements Element.
|
virtual |
Computes the element energy for a given deformation.
Implements Element.
|
private |
Compute the initial stiffness matrix of the element.
|
virtual |
|
virtual |
Compute the internal (elastic) forces acting on the element.
Implements Element.
|
private |
Evaluates the shape function matrix for plate at a given Gauss point.
| ri | The i-th Gauss coordinate in the r-axis. |
| si | The i-th Gauss coordinate in the s-axis. |
| xyloc | Node coordinates in 3D projected into r-s plane. |
| Hij | The shape function matrix evaluated at (ri,si). |
| Jij | The Jacobian matrix evaluated at (ri,si). |
|
private |
Compute/update the local axis-1-2-3 of the element.
|
private |
Compute/update the node coordinates in axis-1-2-3 of the element.
return The xyloc Node coordinates in 3D projected into r-s plane.
|
virtual |
Compute the lumped/consistent mass matrix of the element.
Implements Element.
|
private |
Evaluates the shape function matrix for membrane at a given Gauss point.
| ri | The i-th Gauss coordinate in the r-axis. |
| si | The i-th Gauss coordinate in the s-axis. |
| xyloc | Node coordinates in 3D projected into r-s plane. |
| Hij | The membrane shape function matrix evaluated at (ri,si). |
| Jij | The Jacobian matrix evaluated at (ri,si). |
|
private |
Evaluates the strain-displacement matrix for membrane effect at a given Gauss point.
| ri | The i-th Gauss coordinate in the r-axis. |
| si | The i-th Gauss coordinate in the s-axis. |
| xyloc | Node coordinates in 3D projected into r-s plane. |
| Bij | The membrane strain-displacement matrix evaluated at (ri,si). |
| BM12 | Matrix to enforce constant Tension (wilson) inside element. |
| Pij | The membrane penalty matrix evaluated at (ri,si). |
| Jij | The Jacobian matrix evaluated at (ri,si). |
|
private |
Evaluates the shape function matrix for plate at a given Gauss point.
| ri | The i-th Gauss coordinate in the r-axis. |
| si | The i-th Gauss coordinate in the s-axis. |
| xyloc | Node coordinates in 3D projected into r-s plane. |
| Hij | The plate shape function matrix evaluated at (ri,si). |
| Jij | The Jacobian matrix evaluated at (ri,si). |
|
private |
Evaluates the strain-displacement matrix for a plate effect at a given Gauss point.
| ri | The i-th Gauss coordinate in the r-axis. |
| si | The i-th Gauss coordinate in the s-axis. |
| xyloc | Node coordinates in 3D projected into r-s plane. |
| Bij | The plate strain-displacement matrix evaluated at (ri,si). |
| Jij | The Jacobian matrix evaluated at (ri,si). |
|
virtual |
|
private |
Compute/update the projection axis of the element.
|
virtual |
Compute the stiffness matrix of the element using gauss-integration.
Implements Element.
|
private |
Update strain in the element.
| xyloc | Node coordinates in 3D projected into r-s plane. |
| BM12 | Matrix to enforce constant Tension (wilson) inside element. |
| ri | The i-th Gauss coordinate in the r-axis. |
| si | The i-th Gauss coordinate in the s-axis. |
|
private |
Update strain rate in the element.
| xyloc | Node coordinates in 3D projected into r-s plane. |
| BM12 | Matrix to enforce constant Tension (wilson) inside element. |
| ri | The i-th Gauss coordinate in the r-axis. |
| si | The i-th Gauss coordinate in the s-axis. |
|
virtual |
Compute the surface forces acting on the element.
| surface | Pointer to the Load object that contains this information. |
| k | The time step at which the surface load is evaluated. |
Implements Element.
|
private |
Computes the total element mass.
|
private |
Evaluates the Constant Tension matrix and Jacobian for membrane effect at a given Gauss point.
| ri | The i-th Gauss coordinate in the r-axis. |
| si | The i-th Gauss coordinate in the s-axis. |
| xyloc | Node coordinates in 3D projected into r-s plane. |
| BM12 | Matrix to enforce constant Tension (wilson) inside element. |
| Jij | The Jacobian matrix evaluated at (ri,si). |
|
virtual |
Gets the material/section (generalised) strain.
Implements Element.
|
virtual |
Gets the material strain in section at coordinate (x3,x2).
| x3 | Local coordinate along the x3-axis. |
| x2 | Local coordinate along the x2-axis. |
Implements Element.
|
virtual |
Gets the material/section (generalised) strain-rate.
Implements Element.
|
virtual |
Gets the material/section (generalised) stress.
Implements Element.
|
virtual |
Gets the material stress in section at coordinate (x3,x2).
| x3 | Local coordinate along the x3-axis. |
| x2 | Local coordinate along the x2-axis. |
Implements Element.
|
virtual |
|
virtual |
|
virtual |
Brings the material/section state to its initial state in this element.
Implements Element.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
private |
Coordinate of Gauss points.