LifeV
|
#include <SecondOrderExponentialMaterialNonLinear.hpp>
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 MapEpetra > | M_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... | |
Constructor & Destructor | |
SecondOrderExponentialMaterialNonLinear () | |
virtual | ~SecondOrderExponentialMaterialNonLinear () |
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 &dk_loc) |
Computes the new Stiffness vector for Neo-Hookean and Exponential materials in StructuralSolver given a certain displacement field. More... | |
void | showMe (std::string const &fileNameVectStiff, std::string const &fileNameJacobain) |
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... | |
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... | |
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) |
Definition at line 49 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 55 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::data_Type data_Type |
Definition at line 57 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::vector_Type vector_Type |
Definition at line 59 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::matrix_Type matrix_Type |
Definition at line 60 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::matrixPtr_Type matrixPtr_Type |
Definition at line 62 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::vectorPtr_Type vectorPtr_Type |
Definition at line 63 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::dataPtr_Type dataPtr_Type |
Definition at line 64 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 65 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 67 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 68 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef mapMarkerVolumes_Type::const_iterator mapIterator_Type |
Definition at line 69 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 71 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef std::shared_ptr<vectorVolumes_Type> vectorVolumesPtr_Type |
Definition at line 72 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 74 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 75 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef mapMarkerIndexes_Type::const_iterator mapIteratorIndex_Type |
Definition at line 76 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef std::vector<UInt> vectorIndexes_Type |
Definition at line 78 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef std::shared_ptr<vectorIndexes_Type> vectorIndexesPtr_Type |
Definition at line 79 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 81 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 82 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 85 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 86 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef MatrixSmall<3, 3> matrixSmall_Type |
Definition at line 88 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::tensorF_Type tensorF_Type |
Definition at line 91 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 92 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::tensorC_Type tensorC_Type |
Definition at line 93 of file SecondOrderExponentialMaterialNonLinear.hpp.
typedef super::minusT_Type minusT_Type |
Definition at line 94 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 95 of file SecondOrderExponentialMaterialNonLinear.hpp.
Definition at line 281 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
virtual |
Definition at line 293 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
virtual |
Setup the created object of the class StructuralIsotropicConstitutiveLaw.
dFespace | the FiniteElement Space |
monolithicMap | the MapEpetra |
offset | the offset parameter used assembling the matrices |
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 302 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
virtual |
Compute the Stiffness matrix in StructuralSolver::buildSystem()
dataMaterial | the class with Material properties data |
Empty method for second order exponential material
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 378 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
virtual |
Updates the Jacobian matrix in StructualSolver::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 |
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 384 of file SecondOrderExponentialMaterialNonLinear.hpp.
void updateNonLinearJacobianTerms | ( | matrixPtr_Type & | jacobian, |
const vector_Type & | disp, | ||
const dataPtr_Type & | dataMaterial, | ||
const mapMarkerVolumesPtr_Type | mapsMarkerVolumes, | ||
const mapMarkerIndexesPtr_Type | mapsMarkerIndexes, | ||
const displayerPtr_Type & | displayer | ||
) |
Updates the nonlinear terms in the Jacobian matrix in StructualSolver::updateJacobian.
stiff | stiffness matrix provided from outside |
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 |
Nonlinear part of jacobian loop on volumes (i)
VOLUMETRIC PART
ISOCHORIC PART
Definition at line 402 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
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.
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 |
Stiffness for non-linear terms of the Neo-Hookean model
The results of the integrals are stored at each step into elvecK, until to build K matrix of the bilinear form
Volumetric part
Source term Pvol: int { bulk /2* (J1^2 - J1 + log(J1) ) * 1/J1 * (CofF1 : v) }
Stiffness for non-linear terms of the Neo-Hookean model Volumetric part : int { bulk /2* (J1^2 - J1 + log(J1) ) * 1/J1 * (CofF1 : v) }
Isochoric part
Source term P1iso_Exp: int { 2 * alpha * ( Ic1_iso - 3 ) * exp(gamma *( Ic1_iso -3 )^2) * ( J1^(-2/3)* (F1 : v) - 1/3 * (Ic1_iso / J1) * (CofF1 : v) ) }
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 560 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
virtual |
Computes the new Stiffness vector for Neo-Hookean and Exponential materials 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.
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 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_loc | the elemental displacement |
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 658 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
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).
dk_loc | local displacement vectorShowMe method of the class (saved on a file the stiffness vector and the jacobian) |
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 752 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
virtual |
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 |
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 769 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
virtual |
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 |
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 811 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
inlinevirtual |
Get the Stiffness matrix.
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 239 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
inlinevirtual |
Get the stiffness vector.
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 246 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
virtual |
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 761 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
protectedvirtual |
construct the vectors for the parameters
VOID |
Implements StructuralIsotropicConstitutiveLaw< MeshType >.
Definition at line 340 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
protected |
Vector: stiffness non-linear.
Definition at line 270 of file SecondOrderExponentialMaterialNonLinear.hpp.
|
protected |
Definition at line 273 of file SecondOrderExponentialMaterialNonLinear.hpp.