LifeV
StructuralIsotropicConstitutiveLaw< MeshType > Class Template Referenceabstract

#include <StructuralIsotropicConstitutiveLaw.hpp>

+ Inheritance diagram for StructuralIsotropicConstitutiveLaw< MeshType >:
+ Collaboration diagram for StructuralIsotropicConstitutiveLaw< MeshType >:

Protected Member Functions

virtual void setupVectorsParameters (void)=0
 construct the vectors for the parameters More...
 

Protected Attributes

dataPtr_Type M_dataMaterial
 Protected Members. More...
 
FESpacePtr_Type M_dispFESpace
 
ETFESpacePtr_Type M_dispETFESpace
 
std::shared_ptr< const MapEpetraM_localMap
 
matrixPtr_Type M_jacobian
 Matrix jacobian. More...
 
UInt M_offset
 The Offset parameter. More...
 
vectorsParametersPtr_Type M_vectorsParameters
 Map between markers and volumes on the mesh. More...
 

Type definitions

typedef StructuralConstitutiveLawData data_Type
 
typedef MatrixEpetra< Realmatrix_Type
 
typedef std::shared_ptr< matrix_TypematrixPtr_Type
 
typedef VectorEpetra vector_Type
 
typedef std::shared_ptr< vector_TypevectorPtr_Type
 
typedef std::shared_ptr< data_TypedataPtr_Type
 
typedef std::shared_ptr< const DisplayerdisplayerPtr_Type
 
typedef FactorySingleton< Factory< StructuralIsotropicConstitutiveLaw< MeshType >, std::string > > StructureIsotropicMaterialFactory
 
typedef std::vector< typename MeshType::element_Type *> vectorVolumes_Type
 
typedef std::map< UInt, vectorVolumes_TypemapMarkerVolumes_Type
 
typedef std::shared_ptr< mapMarkerVolumes_TypemapMarkerVolumesPtr_Type
 
typedef std::vector< UIntvectorIndexes_Type
 
typedef std::map< UInt, vectorIndexes_TypemapMarkerIndexes_Type
 
typedef std::shared_ptr< mapMarkerIndexes_TypemapMarkerIndexesPtr_Type
 
typedef ETFESpace< MeshType, MapEpetra, 3, 3 > ETFESpace_Type
 
typedef std::shared_ptr< ETFESpace_TypeETFESpacePtr_Type
 
typedef FESpace< MeshType, MapEpetraFESpace_Type
 
typedef std::shared_ptr< FESpace_TypeFESpacePtr_Type
 
typedef std::vector< std::vector< Real > > vectorsParameters_Type
 
typedef std::shared_ptr< vectorsParameters_TypevectorsParametersPtr_Type
 
typedef ExpressionDefinitions::deformationGradient_Type tensorF_Type
 
typedef ExpressionDefinitions::determinantTensorF_Type determinantF_Type
 
typedef ExpressionDefinitions::rightCauchyGreenTensor_Type tensorC_Type
 
typedef ExpressionDefinitions::minusTransposedTensor_Type minusT_Type
 
typedef ExpressionDefinitions::traceTensor_Type traceTensor_Type
 

Constructor & Deconstructor

 StructuralIsotropicConstitutiveLaw ()
 
virtual ~StructuralIsotropicConstitutiveLaw ()
 

Methods

virtual void setup (const FESpacePtr_Type &dFESpace, const ETFESpacePtr_Type &ETFESpace, const std::shared_ptr< const MapEpetra > &monolithicMap, const UInt offset, const dataPtr_Type &dataMaterial)=0
 Setup the created object of the class StructuralIsotropicConstitutiveLaw. More...
 
virtual void computeLinearStiff (dataPtr_Type &dataMaterial, const mapMarkerVolumesPtr_Type, const mapMarkerIndexesPtr_Type)=0
 Computes the linear part of the stiffness matrix StructuralSolver::buildSystem. More...
 
virtual void updateJacobianMatrix (const vector_Type &disp, const dataPtr_Type &dataMaterial, const mapMarkerVolumesPtr_Type mapsMarkerVolumes, const mapMarkerIndexesPtr_Type mapsMarkerIndexes, const displayerPtr_Type &displayer)=0
 Updates the Jacobian matrix in StructuralSolver::updateJacobian. More...
 
virtual void computeStiffness (const vector_Type &sol, Real factor, const dataPtr_Type &dataMaterial, const mapMarkerVolumesPtr_Type mapsMarkerVolumes, const mapMarkerIndexesPtr_Type mapsMarkerIndexes, const displayerPtr_Type &displayer)=0
 Computes the new Stiffness matrix in StructuralSolver given a certain displacement field. More...
 
virtual void computeKinematicsVariables (const VectorElemental &dk_loc)=0
 Computes the deformation Gradient F, the cofactor of F Cof(F), the determinant of F J = det(F), the trace of C Tr(C). More...
 
virtual void showMe (std::string const &fileNameStiff, std::string const &fileNameJacobian)=0
 Output of the class. More...
 
virtual void computeLocalFirstPiolaKirchhoffTensor (Epetra_SerialDenseMatrix &firstPiola, const Epetra_SerialDenseMatrix &tensorF, const Epetra_SerialDenseMatrix &cofactorF, const std::vector< Real > &invariants, const UInt material)=0
 Compute the First Piola Kirchhoff Tensor. More...
 
virtual void computeCauchyStressTensor (const vectorPtr_Type disp, const QuadratureRule &evalQuad, vectorPtr_Type sigma_1, vectorPtr_Type sigma_2, vectorPtr_Type sigma_3)=0
 Compute the First Piola Kirchhoff Tensor. More...
 

Get Methods

MapEpetra const & map () const
 Getters Get the Epetramap. More...
 
FESpace_TypedFESpace ()
 Get the FESpace object. More...
 
matrixPtr_Type const jacobian () const
 Get the Stiffness matrix. More...
 
virtual matrixPtr_Type const stiffMatrix () const =0
 Get the Stiffness matrix. More...
 
virtual vectorPtr_Type const stiffVector () const =0
 Get the Stiffness matrix. More...
 
virtual void apply (const vector_Type &sol, vector_Type &res, const mapMarkerVolumesPtr_Type mapsMarkerVolumes, const mapMarkerIndexesPtr_Type mapsMarkerIndexes, const displayerPtr_Type displayer)=0
 

Detailed Description

template<typename MeshType>
class LifeV::StructuralIsotropicConstitutiveLaw< MeshType >

Definition at line 89 of file StructuralIsotropicConstitutiveLaw.hpp.

Member Typedef Documentation

◆ data_Type

◆ matrix_Type

◆ matrixPtr_Type

typedef std::shared_ptr<matrix_Type> matrixPtr_Type

Definition at line 98 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ vector_Type

◆ vectorPtr_Type

typedef std::shared_ptr<vector_Type> vectorPtr_Type

Definition at line 100 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ dataPtr_Type

typedef std::shared_ptr<data_Type> dataPtr_Type

Definition at line 102 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ displayerPtr_Type

typedef std::shared_ptr<const Displayer> displayerPtr_Type

Definition at line 103 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ StructureIsotropicMaterialFactory

◆ vectorVolumes_Type

typedef std::vector< typename MeshType::element_Type* > vectorVolumes_Type

Definition at line 107 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ mapMarkerVolumes_Type

◆ mapMarkerVolumesPtr_Type

Definition at line 110 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ vectorIndexes_Type

typedef std::vector<UInt> vectorIndexes_Type

Definition at line 112 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ mapMarkerIndexes_Type

◆ mapMarkerIndexesPtr_Type

Definition at line 114 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ ETFESpace_Type

◆ ETFESpacePtr_Type

typedef std::shared_ptr<ETFESpace_Type> ETFESpacePtr_Type

Definition at line 118 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ FESpace_Type

◆ FESpacePtr_Type

typedef std::shared_ptr<FESpace_Type> FESpacePtr_Type

Definition at line 121 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ vectorsParameters_Type

typedef std::vector<std::vector<Real> > vectorsParameters_Type

Definition at line 124 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ vectorsParametersPtr_Type

◆ tensorF_Type

◆ determinantF_Type

◆ tensorC_Type

◆ minusT_Type

◆ traceTensor_Type

Constructor & Destructor Documentation

◆ StructuralIsotropicConstitutiveLaw()

◆ ~StructuralIsotropicConstitutiveLaw()

virtual ~StructuralIsotropicConstitutiveLaw ( )
inlinevirtual

Definition at line 143 of file StructuralIsotropicConstitutiveLaw.hpp.

Member Function Documentation

◆ setup()

virtual void setup ( const FESpacePtr_Type dFESpace,
const ETFESpacePtr_Type ETFESpace,
const std::shared_ptr< const MapEpetra > &  monolithicMap,
const UInt  offset,
const dataPtr_Type dataMaterial 
)
pure virtual

◆ computeLinearStiff()

virtual void computeLinearStiff ( dataPtr_Type dataMaterial,
const mapMarkerVolumesPtr_Type  ,
const mapMarkerIndexesPtr_Type   
)
pure virtual

◆ updateJacobianMatrix()

virtual void updateJacobianMatrix ( const vector_Type disp,
const dataPtr_Type dataMaterial,
const mapMarkerVolumesPtr_Type  mapsMarkerVolumes,
const mapMarkerIndexesPtr_Type  mapsMarkerIndexes,
const displayerPtr_Type displayer 
)
pure virtual

Updates the Jacobian matrix in StructuralSolver::updateJacobian.

Parameters
dispsolution at the k-th iteration of NonLinearRichardson Method
dataMateriala pointer to the dataType member in StructuralSolver class to get the material coefficients (e.g. Young modulus, Poisson ratio..)
displayera pointer to the Dysplaier member in the StructuralSolver class

Implemented in ExponentialMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinearPenalized< MeshType >, NeoHookeanMaterialNonLinear< MeshType >, SecondOrderExponentialMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinear< MeshType >, and VenantKirchhoffMaterialLinear< MeshType >.

◆ computeStiffness()

virtual void computeStiffness ( const vector_Type sol,
Real  factor,
const dataPtr_Type dataMaterial,
const mapMarkerVolumesPtr_Type  mapsMarkerVolumes,
const mapMarkerIndexesPtr_Type  mapsMarkerIndexes,
const displayerPtr_Type displayer 
)
pure virtual

Computes the new Stiffness matrix in StructuralSolver given a certain displacement field.

This function is used both in StructuralSolver::evalResidual and in StructuralSolver::updateSystem since the matrix is the expression of the matrix is the same. This is virtual and not pure virtual since in the linear St. Venant-Kirchhoff law it is not needed.

Parameters
solthe solution vector
factorscaling factor used in FSI
dataMateriala pointer to the dataType member in StructuralSolver class to get the material coefficients (e.g. Young modulus, Poisson ratio..)
displayera pointer to the Dysplaier member in the StructuralSolver class

Implemented in ExponentialMaterialNonLinear< MeshType >, NeoHookeanMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinearPenalized< MeshType >, SecondOrderExponentialMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinear< MeshType >, and VenantKirchhoffMaterialLinear< MeshType >.

◆ computeKinematicsVariables()

virtual void computeKinematicsVariables ( const VectorElemental dk_loc)
pure virtual

Computes the deformation Gradient F, the cofactor of F Cof(F), the determinant of F J = det(F), the trace of C Tr(C).

Parameters
dk_loclocal displacement vector

Implemented in ExponentialMaterialNonLinear< MeshType >, NeoHookeanMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinearPenalized< MeshType >, VenantKirchhoffMaterialNonLinear< MeshType >, SecondOrderExponentialMaterialNonLinear< MeshType >, and VenantKirchhoffMaterialLinear< MeshType >.

◆ showMe()

virtual void showMe ( std::string const &  fileNameStiff,
std::string const &  fileNameJacobian 
)
pure virtual

Output of the class.

Parameters
fileNamelinearStiffthe filename where to apply the spy method for the linear part of the Stiffness matrix
fileNameStiffthe filename where to apply the spy method for the Stiffness matrix

Implemented in ExponentialMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinearPenalized< MeshType >, NeoHookeanMaterialNonLinear< MeshType >, SecondOrderExponentialMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinear< MeshType >, and VenantKirchhoffMaterialLinear< MeshType >.

◆ computeLocalFirstPiolaKirchhoffTensor()

virtual void computeLocalFirstPiolaKirchhoffTensor ( Epetra_SerialDenseMatrix &  firstPiola,
const Epetra_SerialDenseMatrix &  tensorF,
const Epetra_SerialDenseMatrix &  cofactorF,
const std::vector< Real > &  invariants,
const UInt  material 
)
pure virtual

Compute the First Piola Kirchhoff Tensor.

Parameters
firstPiolaEpetra_SerialDenseMatrix that has to be filled
tensorFEpetra_SerialDenseMatrix the deformation gradient
cofactorFEpetra_SerialDenseMatrix cofactor of F
invariantsstd::vector with the invariants of C and the detF
materialUInt number to get the material parameteres form the VenantElasticData class

Implemented in VenantKirchhoffMaterialNonLinear< MeshType >, ExponentialMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinearPenalized< MeshType >, NeoHookeanMaterialNonLinear< MeshType >, SecondOrderExponentialMaterialNonLinear< MeshType >, and VenantKirchhoffMaterialLinear< MeshType >.

◆ computeCauchyStressTensor()

virtual void computeCauchyStressTensor ( const vectorPtr_Type  disp,
const QuadratureRule evalQuad,
vectorPtr_Type  sigma_1,
vectorPtr_Type  sigma_2,
vectorPtr_Type  sigma_3 
)
pure virtual

Compute the First Piola Kirchhoff Tensor.

Parameters
dispthe displacement field from which we compute the fisrt piola-Kirchhoff tensor
sigma_1the first column of the Cauchy stress tensor
sigma_2the second column of the Cauchy stress tensor
sigma_3the third column of the Cauchy stress tensor

Implemented in VenantKirchhoffMaterialNonLinear< MeshType >, ExponentialMaterialNonLinear< MeshType >, VenantKirchhoffMaterialNonLinearPenalized< MeshType >, NeoHookeanMaterialNonLinear< MeshType >, SecondOrderExponentialMaterialNonLinear< MeshType >, and VenantKirchhoffMaterialLinear< MeshType >.

◆ map()

MapEpetra const& map ( ) const
inline

Getters Get the Epetramap.

Definition at line 258 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ dFESpace()

FESpace_Type& dFESpace ( )
inline

Get the FESpace object.

Definition at line 264 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ jacobian()

matrixPtr_Type const jacobian ( ) const
inline

Get the Stiffness matrix.

Definition at line 270 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ stiffMatrix()

◆ stiffVector()

◆ apply()

◆ setupVectorsParameters()

Field Documentation

◆ M_dataMaterial

dataPtr_Type M_dataMaterial
protected

Protected Members.

Definition at line 299 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ M_dispFESpace

FESpacePtr_Type M_dispFESpace
protected

Definition at line 301 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ M_dispETFESpace

ETFESpacePtr_Type M_dispETFESpace
protected

Definition at line 303 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ M_localMap

std::shared_ptr<const MapEpetra> M_localMap
protected

Definition at line 305 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ M_jacobian

matrixPtr_Type M_jacobian
protected

Matrix jacobian.

Definition at line 308 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ M_offset

UInt M_offset
protected

The Offset parameter.

Definition at line 311 of file StructuralIsotropicConstitutiveLaw.hpp.

◆ M_vectorsParameters

vectorsParametersPtr_Type M_vectorsParameters
protected

Map between markers and volumes on the mesh.

Definition at line 314 of file StructuralIsotropicConstitutiveLaw.hpp.


The documentation for this class was generated from the following file: