LifeV
|
This class is an abstract class to define different type of models for the arterial wall. This class has just pure virtual methods. They are implemented in the specific class for one material. More...
#include <StructuralConstitutiveLaw.hpp>
Protected Attributes | |
FESpacePtr_Type | M_dispFESpace |
Protected Members. More... | |
ETFESpacePtr_Type | M_dispETFESpace |
std::shared_ptr< const MapEpetra > | M_localMap |
matrixPtr_Type | M_jacobian |
Matrix jacobian. More... | |
UInt | M_offset |
The Offset parameter. More... | |
dataPtr_Type | M_dataMaterial |
isotropicLawPtr_Type | M_isotropicLaw |
anisotropicLawPtr_Type | M_anisotropicLaw |
displayerPtr_Type | M_displayer |
matrixPtr_Type | M_matrixStiffness |
vectorPtr_Type | M_vectorStiffness |
Constructor & Deconstructor | |
StructuralConstitutiveLaw () | |
virtual | ~StructuralConstitutiveLaw () |
Methods | |
void | setup (const FESpacePtr_Type &dFESpace, const ETFESpacePtr_Type &ETFESpace, const std::shared_ptr< const MapEpetra > &monolithicMap, const UInt offset, const dataPtr_Type &dataMaterial, const displayerPtr_Type &displayer) |
Setup the created object of the class StructuralConstitutiveLaw. More... | |
void | computeLinearStiff (dataPtr_Type &dataMaterial, const mapMarkerVolumesPtr_Type, const mapMarkerIndexesPtr_Type) |
Computes the linear part of the stiffness matrix 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 StructuralSolver::updateJacobian. More... | |
void | computeStiffness (const vector_Type &sol, const UInt iter, Real factor, const dataPtr_Type &dataMaterial, const mapMarkerVolumesPtr_Type mapsMarkerVolumes, const mapMarkerIndexesPtr_Type mapsMarkerIndexes, const displayerPtr_Type &displayer) |
Computes the new Stiffness matrix in StructuralSolver given a certain displacement field. More... | |
void | showMe (std::string const &fileNameStiff, std::string const &fileNameJacobian) |
Output of the class. More... | |
void | computeLocalFirstPiolaKirchhoffTensor (Epetra_SerialDenseMatrix &firstPiola, const Epetra_SerialDenseMatrix &tensorF, const Epetra_SerialDenseMatrix &cofactorF, const std::vector< Real > &invariants, const UInt material) |
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... | |
Get Methods | |
MapEpetra const & | map () const |
Getters Get the Epetramap. More... | |
FESpace_Type & | dFESpace () |
Get the FESpace object. More... | |
ETFESpace_Type & | dETFESpace () |
Get the FESpace object. More... | |
matrixPtr_Type const | jacobian () const |
Get the Stiffness matrix. More... | |
isotropicLawPtr_Type | isotropicLaw () const |
anisotropicLawPtr_Type | anisotropicLaw () const |
const matrixPtr_Type | stiffMatrix () |
Get the Stiffness matrix (linear case) More... | |
const vectorPtr_Type | stiffVector () |
Get the Stiffness vector (nonlinear case) More... | |
void | apply (const vector_Type &sol, vector_Type &res, const mapMarkerVolumesPtr_Type mapsMarkerVolumes, const mapMarkerIndexesPtr_Type mapsMarkerIndexes) |
This class is an abstract class to define different type of models for the arterial wall. This class has just pure virtual methods. They are implemented in the specific class for one material.
Definition at line 88 of file StructuralConstitutiveLaw.hpp.
Definition at line 94 of file StructuralConstitutiveLaw.hpp.
Definition at line 97 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<isotropicLaw_Type> isotropicLawPtr_Type |
Definition at line 98 of file StructuralConstitutiveLaw.hpp.
Definition at line 100 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<anisotropicLaw_Type> anisotropicLawPtr_Type |
Definition at line 101 of file StructuralConstitutiveLaw.hpp.
typedef MatrixEpetra<Real> matrix_Type |
Definition at line 103 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<matrix_Type> matrixPtr_Type |
Definition at line 104 of file StructuralConstitutiveLaw.hpp.
typedef VectorEpetra vector_Type |
Definition at line 105 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<vector_Type> vectorPtr_Type |
Definition at line 106 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<data_Type> dataPtr_Type |
Definition at line 108 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<const Displayer> displayerPtr_Type |
Definition at line 109 of file StructuralConstitutiveLaw.hpp.
typedef std::vector< typename MeshType::element_Type* > vectorVolumes_Type |
Definition at line 111 of file StructuralConstitutiveLaw.hpp.
typedef std::map< UInt, vectorVolumes_Type> mapMarkerVolumes_Type |
Definition at line 113 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<mapMarkerVolumes_Type> mapMarkerVolumesPtr_Type |
Definition at line 114 of file StructuralConstitutiveLaw.hpp.
typedef std::vector<UInt> vectorIndexes_Type |
Definition at line 116 of file StructuralConstitutiveLaw.hpp.
typedef std::map< UInt, vectorIndexes_Type> mapMarkerIndexes_Type |
Definition at line 117 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<mapMarkerIndexes_Type> mapMarkerIndexesPtr_Type |
Definition at line 118 of file StructuralConstitutiveLaw.hpp.
typedef ETFESpace<MeshType, MapEpetra, 3, 3 > ETFESpace_Type |
Definition at line 121 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<ETFESpace_Type> ETFESpacePtr_Type |
Definition at line 122 of file StructuralConstitutiveLaw.hpp.
typedef FESpace< MeshType, MapEpetra > FESpace_Type |
Definition at line 124 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<FESpace_Type> FESpacePtr_Type |
Definition at line 125 of file StructuralConstitutiveLaw.hpp.
typedef std::vector<std::vector<Real> > vectorsParameters_Type |
Definition at line 128 of file StructuralConstitutiveLaw.hpp.
typedef std::shared_ptr<vectorsParameters_Type> vectorsParametersPtr_Type |
Definition at line 129 of file StructuralConstitutiveLaw.hpp.
Definition at line 327 of file StructuralConstitutiveLaw.hpp.
|
inlinevirtual |
Definition at line 139 of file StructuralConstitutiveLaw.hpp.
void setup | ( | const FESpacePtr_Type & | dFESpace, |
const ETFESpacePtr_Type & | ETFESpace, | ||
const std::shared_ptr< const MapEpetra > & | monolithicMap, | ||
const UInt | offset, | ||
const dataPtr_Type & | dataMaterial, | ||
const displayerPtr_Type & | displayer | ||
) |
Setup the created object of the class StructuralConstitutiveLaw.
dFespace | the FiniteElement Space |
monolithicMap | the MapEpetra |
offset | the offset parameter used assembling the matrices |
Definition at line 345 of file StructuralConstitutiveLaw.hpp.
void computeLinearStiff | ( | dataPtr_Type & | dataMaterial, |
const mapMarkerVolumesPtr_Type | mapsMarkerVolumes, | ||
const mapMarkerIndexesPtr_Type | mapsMarkerIndexes | ||
) |
Computes the linear part of the stiffness matrix StructuralSolver::buildSystem.
dataMaterial | the class with Material properties data |
Definition at line 382 of file StructuralConstitutiveLaw.hpp.
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 StructuralSolver::updateJacobian.
disp | solution at the k-th iteration of NonLinearRichardson Method |
dataMaterial | a pointer to the dataType member in StructuralSolver class to get the material coefficients (e.g. Young modulus, Poisson ratio..) |
displayer | a pointer to the Dysplaier member in the StructuralSolver class |
Definition at line 395 of file StructuralConstitutiveLaw.hpp.
void computeStiffness | ( | const vector_Type & | sol, |
const UInt | iter, | ||
Real | factor, | ||
const dataPtr_Type & | dataMaterial, | ||
const mapMarkerVolumesPtr_Type | mapsMarkerVolumes, | ||
const mapMarkerIndexesPtr_Type | mapsMarkerIndexes, | ||
const displayerPtr_Type & | displayer | ||
) |
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.
sol | the solution vector |
factor | scaling factor used in FSI |
dataMaterial | a pointer to the dataType member in StructuralSolver class to get the material coefficients (e.g. Young modulus, Poisson ratio..) |
displayer | a pointer to the Dysplaier member in the StructuralSolver class |
Definition at line 425 of file StructuralConstitutiveLaw.hpp.
void showMe | ( | std::string const & | fileNameStiff, |
std::string const & | fileNameJacobian | ||
) |
Output of the class.
fileNamelinearStiff | the filename where to apply the spy method for the linear part of the Stiffness matrix |
fileNameStiff | the filename where to apply the spy method for the Stiffness matrix |
Definition at line 467 of file StructuralConstitutiveLaw.hpp.
void computeLocalFirstPiolaKirchhoffTensor | ( | Epetra_SerialDenseMatrix & | firstPiola, |
const Epetra_SerialDenseMatrix & | tensorF, | ||
const Epetra_SerialDenseMatrix & | cofactorF, | ||
const std::vector< Real > & | invariants, | ||
const UInt | material | ||
) |
Compute the First Piola Kirchhoff Tensor.
firstPiola | Epetra_SerialDenseMatrix that has to be filled |
tensorF | Epetra_SerialDenseMatrix the deformation gradient |
cofactorF | Epetra_SerialDenseMatrix cofactor of F |
invariants | std::vector with the invariants of C and the detF |
material | UInt number to get the material parameteres form the VenantElasticData class |
Definition at line 484 of file StructuralConstitutiveLaw.hpp.
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.
disp | the displacement field from which we compute the fisrt piola-Kirchhoff tensor |
sigma_1 | the first column of the Cauchy stress tensor |
sigma_2 | the second column of the Cauchy stress tensor |
sigma_3 | the third column of the Cauchy stress tensor |
Definition at line 584 of file StructuralConstitutiveLaw.hpp.
|
inline |
Getters Get the Epetramap.
Definition at line 248 of file StructuralConstitutiveLaw.hpp.
|
inline |
Get the FESpace object.
Definition at line 254 of file StructuralConstitutiveLaw.hpp.
|
inline |
Get the FESpace object.
Definition at line 260 of file StructuralConstitutiveLaw.hpp.
|
inline |
Get the Stiffness matrix.
Definition at line 266 of file StructuralConstitutiveLaw.hpp.
|
inline |
Definition at line 271 of file StructuralConstitutiveLaw.hpp.
|
inline |
Definition at line 276 of file StructuralConstitutiveLaw.hpp.
const StructuralConstitutiveLaw< MeshType >::matrixPtr_Type stiffMatrix | ( | ) |
Get the Stiffness matrix (linear case)
Definition at line 513 of file StructuralConstitutiveLaw.hpp.
const StructuralConstitutiveLaw< MeshType >::vectorPtr_Type stiffVector | ( | ) |
Get the Stiffness vector (nonlinear case)
Definition at line 533 of file StructuralConstitutiveLaw.hpp.
void apply | ( | const vector_Type & | sol, |
vector_Type & | res, | ||
const mapMarkerVolumesPtr_Type | mapsMarkerVolumes, | ||
const mapMarkerIndexesPtr_Type | mapsMarkerIndexes | ||
) |
Definition at line 558 of file StructuralConstitutiveLaw.hpp.
|
protected |
Protected Members.
Definition at line 297 of file StructuralConstitutiveLaw.hpp.
|
protected |
Definition at line 299 of file StructuralConstitutiveLaw.hpp.
|
protected |
Definition at line 301 of file StructuralConstitutiveLaw.hpp.
|
protected |
Matrix jacobian.
Definition at line 304 of file StructuralConstitutiveLaw.hpp.
|
protected |
The Offset parameter.
Definition at line 307 of file StructuralConstitutiveLaw.hpp.
|
protected |
Definition at line 309 of file StructuralConstitutiveLaw.hpp.
|
protected |
Definition at line 311 of file StructuralConstitutiveLaw.hpp.
|
protected |
Definition at line 313 of file StructuralConstitutiveLaw.hpp.
|
protected |
Definition at line 315 of file StructuralConstitutiveLaw.hpp.
|
protected |
Definition at line 317 of file StructuralConstitutiveLaw.hpp.
|
protected |
Definition at line 319 of file StructuralConstitutiveLaw.hpp.