LifeV
VenantKirchhoffMaterialNonLinear< MeshType > Class Template Reference

#include <VenantKirchhoffMaterialNonLinear.hpp>

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

Protected Member Functions

void setupVectorsParameters (void)
 construct the vectors for the parameters More...
 

Protected Attributes

vectorPtr_Type M_stiff
 Vector: stiffness non-linear. More...
 
matrixSmall_Type M_identity
 
- Protected Attributes inherited from StructuralIsotropicConstitutiveLaw< MeshType >
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 StructuralIsotropicConstitutiveLaw< MeshTypesuper
 
typedef super::data_Type data_Type
 
typedef super::vector_Type vector_Type
 
typedef super::matrix_Type matrix_Type
 
typedef super::matrixPtr_Type matrixPtr_Type
 
typedef super::vectorPtr_Type vectorPtr_Type
 
typedef super::dataPtr_Type dataPtr_Type
 
typedef super::displayerPtr_Type displayerPtr_Type
 
typedef super::mapMarkerVolumesPtr_Type mapMarkerVolumesPtr_Type
 
typedef super::mapMarkerVolumes_Type mapMarkerVolumes_Type
 
typedef mapMarkerVolumes_Type::const_iterator mapIterator_Type
 
typedef super::vectorVolumes_Type vectorVolumes_Type
 
typedef std::shared_ptr< vectorVolumes_TypevectorVolumesPtr_Type
 
typedef std::vector< UIntvectorIndexes_Type
 
typedef std::shared_ptr< vectorIndexes_TypevectorIndexesPtr_Type
 
typedef std::map< UInt, vectorIndexes_TypemapMarkerIndexes_Type
 
typedef std::shared_ptr< mapMarkerIndexes_TypemapMarkerIndexesPtr_Type
 
typedef mapMarkerIndexes_Type::const_iterator mapIteratorIndex_Type
 
typedef super::FESpacePtr_Type FESpacePtr_Type
 
typedef super::ETFESpacePtr_Type ETFESpacePtr_Type
 
typedef super::vectorsParameters_Type vectorsParameters_Type
 
typedef super::vectorsParametersPtr_Type vectorsParametersPtr_Type
 
typedef MatrixSmall< 3, 3 > matrixSmall_Type
 
typedef super::tensorF_Type tensorF_Type
 
typedef super::determinantF_Type determinantF_Type
 
typedef super::tensorC_Type tensorC_Type
 
typedef super::minusT_Type minusT_Type
 
typedef super::traceTensor_Type traceTensor_Type
 

Constructor & Destructor

 VenantKirchhoffMaterialNonLinear ()
 
virtual ~VenantKirchhoffMaterialNonLinear ()
 

Methods

void setup (const FESpacePtr_Type &dFESpace, const ETFESpacePtr_Type &dETFESpace, const std::shared_ptr< const MapEpetra > &monolithicMap, const UInt offset, const dataPtr_Type &dataMaterial)
 Setup the created object of the class StructuralIsotropicConstitutiveLaw. More...
 
void computeLinearStiff (dataPtr_Type &, const mapMarkerVolumesPtr_Type, const mapMarkerIndexesPtr_Type)
 Compute the Stiffness matrix in StructuralSolver::buildSystem() More...
 
void updateJacobianMatrix (const vector_Type &disp, const dataPtr_Type &dataMaterial, const mapMarkerVolumesPtr_Type mapsMarkerVolumes, const mapMarkerIndexesPtr_Type mapsMarkerIndexes, const displayerPtr_Type &displayer)
 Updates the Jacobian matrix in StructualSolver::updateJacobian. More...
 
void updateNonLinearJacobianTerms (matrixPtr_Type &jacobian, const vector_Type &disp, const dataPtr_Type &dataMaterial, const mapMarkerVolumesPtr_Type, const mapMarkerIndexesPtr_Type, const displayerPtr_Type &displayer)
 Updates the nonlinear terms in the Jacobian matrix in StructualSolver::updateJacobian. More...
 
void computeStiffness (const vector_Type &disp, Real factor, const dataPtr_Type &dataMaterial, const mapMarkerVolumesPtr_Type, const mapMarkerIndexesPtr_Type, const displayerPtr_Type &displayer)
 Interface method to compute the new Stiffness matrix in StructuralSolver::evalResidual and in StructuralSolver::updateSystem since the matrix is the expression of the matrix is the same. More...
 
void computeKinematicsVariables (const VectorElemental &)
 Computes the new Stiffness vector for Neo-Hookean and Exponential materials in StructuralSolver given a certain displacement field.o This function is used both in StructuralSolver::evalResidual and in StructuralSolver::updateSystem since the matrix is the expression of the matrix is the same. More...
 
void showMe (std::string const &fileNameVectStiff, std::string const &fileNameJacobain)
 ShowMe method of the class (saved on a file the stiffness vector and the jacobian) More...
 

Get Methods

matrixPtr_Type const stiffMatrix () const
 Get the Stiffness matrix. More...
 
vectorPtr_Type const stiffVector () const
 Get the stiffness vector. More...
 
void apply (const vector_Type &sol, vector_Type &res, const mapMarkerVolumesPtr_Type mapsMarkerVolumes, const mapMarkerIndexesPtr_Type mapsMarkerIndexes, const displayerPtr_Type displayer)
 
void computeLocalFirstPiolaKirchhoffTensor (Epetra_SerialDenseMatrix &firstPiola, const Epetra_SerialDenseMatrix &tensorF, const Epetra_SerialDenseMatrix &cofactorF, const std::vector< Real > &invariants, const UInt marker)
 Compute the First Piola Kirchhoff Tensor. More...
 
void computeCauchyStressTensor (const vectorPtr_Type disp, const QuadratureRule &evalQuad, vectorPtr_Type sigma_1, vectorPtr_Type sigma_2, vectorPtr_Type sigma_3)
 Compute the First Piola Kirchhoff Tensor. More...
 

Additional Inherited Members

- Public Types inherited from StructuralIsotropicConstitutiveLaw< MeshType >
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
 
- Public Member Functions inherited from StructuralIsotropicConstitutiveLaw< MeshType >
 StructuralIsotropicConstitutiveLaw ()
 
virtual ~StructuralIsotropicConstitutiveLaw ()
 
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...
 

Detailed Description

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

Definition at line 46 of file VenantKirchhoffMaterialNonLinear.hpp.

Member Typedef Documentation

◆ super

◆ data_Type

◆ vector_Type

◆ matrix_Type

◆ matrixPtr_Type

◆ vectorPtr_Type

◆ dataPtr_Type

◆ displayerPtr_Type

◆ mapMarkerVolumesPtr_Type

◆ mapMarkerVolumes_Type

◆ mapIterator_Type

typedef mapMarkerVolumes_Type::const_iterator mapIterator_Type

Definition at line 67 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ vectorVolumes_Type

◆ vectorVolumesPtr_Type

typedef std::shared_ptr<vectorVolumes_Type> vectorVolumesPtr_Type

Definition at line 70 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ vectorIndexes_Type

typedef std::vector<UInt> vectorIndexes_Type

Definition at line 72 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ vectorIndexesPtr_Type

typedef std::shared_ptr<vectorIndexes_Type> vectorIndexesPtr_Type

Definition at line 73 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ mapMarkerIndexes_Type

Definition at line 74 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ mapMarkerIndexesPtr_Type

Definition at line 75 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ mapIteratorIndex_Type

typedef mapMarkerIndexes_Type::const_iterator mapIteratorIndex_Type

Definition at line 76 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ FESpacePtr_Type

◆ ETFESpacePtr_Type

◆ vectorsParameters_Type

◆ vectorsParametersPtr_Type

◆ matrixSmall_Type

Definition at line 85 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ tensorF_Type

◆ determinantF_Type

◆ tensorC_Type

◆ minusT_Type

◆ traceTensor_Type

Constructor & Destructor Documentation

◆ VenantKirchhoffMaterialNonLinear()

◆ ~VenantKirchhoffMaterialNonLinear()

Member Function Documentation

◆ setup()

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

Setup the created object of the class StructuralIsotropicConstitutiveLaw.

Parameters
dFespacethe FiniteElement Space
monolithicMapthe MapEpetra
offsetthe offset parameter used assembling the matrices

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 301 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ computeLinearStiff()

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

Compute the Stiffness matrix in StructuralSolver::buildSystem()

Parameters
dataMaterialthe class with Material properties data

Empty method for exponential material

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 369 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ updateJacobianMatrix()

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

Updates the Jacobian matrix in StructualSolver::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

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 381 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ updateNonLinearJacobianTerms()

void updateNonLinearJacobianTerms ( matrixPtr_Type jacobian,
const vector_Type disp,
const dataPtr_Type dataMaterial,
const mapMarkerVolumesPtr_Type  ,
const mapMarkerIndexesPtr_Type  ,
const displayerPtr_Type displayer 
)

Updates the nonlinear terms in the Jacobian matrix in StructualSolver::updateJacobian.

Parameters
stiffstiffness matrix provided from outside
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

Nonlinear part of jacobian

  1. Stiffness matrix : int { (lambda/2.0) * ( Ic-3.0 ) * ( dF : ) }

Definition at line 401 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ computeStiffness()

void computeStiffness ( const vector_Type disp,
Real  factor,
const dataPtr_Type dataMaterial,
const mapMarkerVolumesPtr_Type  ,
const mapMarkerIndexesPtr_Type  ,
const displayerPtr_Type displayer 
)
virtual

Interface method to compute the new Stiffness matrix in StructuralSolver::evalResidual and in StructuralSolver::updateSystem since the matrix is the expression of the matrix is the same.

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..)o
displayera pointer to the Dysplaier member in the StructuralSolver class

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 505 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ computeKinematicsVariables()

void computeKinematicsVariables ( const VectorElemental )
inlinevirtual

Computes the new Stiffness vector for Neo-Hookean and Exponential materials in StructuralSolver given a certain displacement field.o This function is used both in StructuralSolver::evalResidual and in StructuralSolver::updateSystem since the matrix is the expression of the matrix is the same.

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 classComputes the deformation gradient F, the cofactor matrix Cof(F), the determinant of F (J = det(F)), the trace of right Cauchy-Green tensor tr(C) This function is used in StructuralIsotropicConstitutiveLaw::computeStiffness
dk_locthe elemental displacement

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 195 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ showMe()

void showMe ( std::string const &  fileNameVectStiff,
std::string const &  fileNameJacobain 
)
virtual

ShowMe method of the class (saved on a file the stiffness vector and the jacobian)

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 583 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ stiffMatrix()

matrixPtr_Type const stiffMatrix ( ) const
inlinevirtual

Get the Stiffness matrix.

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 209 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ stiffVector()

vectorPtr_Type const stiffVector ( ) const
inlinevirtual

Get the stiffness vector.

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 216 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ apply()

void apply ( const vector_Type sol,
vector_Type res,
const mapMarkerVolumesPtr_Type  mapsMarkerVolumes,
const mapMarkerIndexesPtr_Type  mapsMarkerIndexes,
const displayerPtr_Type  displayer 
)
virtual

◆ computeLocalFirstPiolaKirchhoffTensor()

void computeLocalFirstPiolaKirchhoffTensor ( Epetra_SerialDenseMatrix &  firstPiola,
const Epetra_SerialDenseMatrix &  tensorF,
const Epetra_SerialDenseMatrix &  cofactorF,
const std::vector< Real > &  invariants,
const UInt  marker 
)
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

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 601 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ computeCauchyStressTensor()

void computeCauchyStressTensor ( const vectorPtr_Type  disp,
const QuadratureRule evalQuad,
vectorPtr_Type  sigma_1,
vectorPtr_Type  sigma_2,
vectorPtr_Type  sigma_3 
)
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

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 639 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ setupVectorsParameters()

void setupVectorsParameters ( void  )
protectedvirtual

construct the vectors for the parameters

Parameters
VOID
Returns
VOID

Implements StructuralIsotropicConstitutiveLaw< MeshType >.

Definition at line 335 of file VenantKirchhoffMaterialNonLinear.hpp.

Field Documentation

◆ M_stiff

vectorPtr_Type M_stiff
protected

Vector: stiffness non-linear.

Definition at line 268 of file VenantKirchhoffMaterialNonLinear.hpp.

◆ M_identity

matrixSmall_Type M_identity
protected

Definition at line 271 of file VenantKirchhoffMaterialNonLinear.hpp.


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