38 #ifndef _HOLZAPFELMATERIAL_H_ 39 #define _HOLZAPFELMATERIAL_H_ 41 #pragma GCC diagnostic ignored "-Wunused-variable" 42 #pragma GCC diagnostic ignored "-Wunused-parameter" 45 #include <lifev/structure/solver/anisotropic/StructuralAnisotropicConstitutiveLaw.hpp> 47 #define PI 3.14159265359
51 template <
typename MeshType>
58 typedef StructuralAnisotropicConstitutiveLaw<MeshType>
super;
139 const std::shared_ptr<
const MapEpetra>& monolithicMap,
245 const Epetra_SerialDenseMatrix& tensorF,
246 const Epetra_SerialDenseMatrix& cofactorF,
247 const std::vector<Real>& invariants,
277 return super::M_jacobian;
346 template <
typename MeshType>
358 template <
typename MeshType>
366 template <
typename MeshType>
370 const std::shared_ptr<
const MapEpetra>& monolithicMap,
375 this->M_dataMaterial = dataMaterial;
376 this->M_dispFESpace = dFESpace;
377 this->M_dispETFESpace = dETFESpace;
378 this->M_localMap = monolithicMap;
379 this->M_offset = offset;
383 M_identity (0, 0) = 1.0;
384 M_identity (0, 1) = 0.0;
385 M_identity (0, 2) = 0.0;
386 M_identity (1, 0) = 0.0;
387 M_identity (1, 1) = 1.0;
388 M_identity (1, 2) = 0.0;
389 M_identity (2, 0) = 0.0;
390 M_identity (2, 1) = 0.0;
391 M_identity (2, 2) = 1.0;
393 this->M_epsilon =
this->M_dataMaterial->smoothness();
437 template <
typename MeshType>
448 UInt nbFamilies = (*vectorOfFibers).size();
450 ASSERT( nbFamilies ==
this->M_dataMaterial->numberFibersFamilies(),
451 " The number of families set in the test is different from the one in the data" );
453 this->M_vectorOfFibers->resize( nbFamilies );
455 for(
UInt k(0); k < nbFamilies; k++ )
457 ( *(
this->M_vectorOfFibers) )[ k ] = ( *vectorOfFibers )[ k ];
461 this->M_vectorInterpolated.resize( nbFamilies );
463 for(
UInt k(0); k < nbFamilies; k++ )
465 this->M_vectorInterpolated[ k ].reset(
new vector_Type(*
this->M_localMap) );
466 this->M_dispFESpace->interpolate ( *( ( *(
this->M_vectorOfFibers) )[ k ] ) ,
467 * ( (
this->M_vectorInterpolated )[ k ] ),
474 template <
typename MeshType>
486 template <
typename MeshType>
494 this->M_jacobian.reset (
new matrix_Type (*
this->M_localMap) );
496 displayer->leaderPrint (
" \n*********************************\n ");
498 displayer->leaderPrint (
" \n*********************************\n ");
502 template <
typename MeshType>
517 tensorF_Type F = ExpressionDefinitions::deformationGradient(
this->M_dispETFESpace, disp,
this->M_offset,
this->M_identity );
534 displayer->leaderPrint (
" Non-Linear S - updating non linear terms in the Jacobian Matrix (N fibers Holzapfel): \n");
536 for(
UInt i(0); i <
this->M_vectorInterpolated.size(); i++ )
539 displayer->leaderPrint (
" ", i + 1,
"-th fiber family \n" );
542 interpolatedValue_Type fiberIth = ExpressionDefinitions::interpolateFiber(
this->M_dispETFESpace, *(
this->M_vectorInterpolated[ i ] ) );
558 integrate( elements (
this->M_dispETFESpace->mesh() ),
559 this->M_dispFESpace->qr(),
560 this->M_dispETFESpace,
561 this->M_dispETFESpace,
562 value( -4.0/3.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel *
563 IVithBar * ( IVithBar -
value(1.0
) ) *
564 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
565 derAtan( IVithBar -
value(1.0
),
this->M_epsilon, ( 1.0 /
PI ) ) *
574 integrate( elements (
this->M_dispETFESpace->mesh() ),
575 this->M_dispFESpace->qr(),
576 this->M_dispETFESpace,
577 this->M_dispETFESpace,
578 value( 2.0 ) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) *
579 ( IVithBar - value(1.0) ) * Jel * Jel *
580 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar- value(1.0) ) * ( IVithBar- value(1.0) ) ) *
581 derAtan( IVithBar - value(1.0),
this->M_epsilon, ( 1.0 /
PI ) ) *
582 dot( transpose( grad(phi_j) ) * F + transpose(F) * grad(phi_j) , Mith ) *
583 dot( F * Mith - value(1.0/3.0) * IVith * F_T, grad(phi_i) )
590 integrate( elements (
this->M_dispETFESpace->mesh() ),
591 this->M_dispFESpace->qr(),
592 this->M_dispETFESpace,
593 this->M_dispETFESpace,
594 value( -4.0/3.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) *
595 Jel * ( IVithBar -
value(1.0
) ) *
596 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
597 atan( IVithBar -
value(1.0
),
this->M_epsilon, ( 1 /
PI ), (1.0/2.0) ) *
605 integrate( elements (
this->M_dispETFESpace->mesh() ),
606 this->M_dispFESpace->qr(),
607 this->M_dispETFESpace,
608 this->M_dispETFESpace,
609 value( -4.0/3.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) *
611 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
612 atan( IVithBar -
value(1.0
),
this->M_epsilon, ( 1 /
PI ), (1.0/2.0) ) *
621 integrate( elements (
this->M_dispETFESpace->mesh() ),
622 this->M_dispFESpace->qr(),
623 this->M_dispETFESpace,
624 this->M_dispETFESpace,
625 value( 2.0 ) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * Jel *
626 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar- value(1.0) ) * ( IVithBar- value(1.0) ) ) *
627 atan( IVithBar - value(1.0),
this->M_epsilon, ( 1 /
PI ), (1.0/2.0) ) *
628 dot( transpose( grad(phi_j) ) * F + transpose(F) * grad(phi_j) , Mith ) *
629 dot( F * Mith - value(1.0/3.0) * IVith * F_T, grad(phi_i) )
635 integrate( elements (
this->M_dispETFESpace->mesh() ),
636 this->M_dispFESpace->qr(),
637 this->M_dispETFESpace,
638 this->M_dispETFESpace,
639 value( -8.0/3.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) *
640 Jel * IVithBar * ( IVithBar -
value(1.0
) ) * ( IVithBar -
value(1.0
) ) *
641 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
642 atan( IVithBar -
value(1.0
),
this->M_epsilon, ( 1 /
PI ), (1.0/2.0) ) *
651 integrate( elements (
this->M_dispETFESpace->mesh() ),
652 this->M_dispFESpace->qr(),
653 this->M_dispETFESpace,
654 this->M_dispETFESpace,
655 value( 4.0 ) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) *
656 Jel * Jel * ( IVithBar - value(1.0) ) * ( IVithBar - value(1.0) ) *
657 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar- value(1.0) ) * ( IVithBar- value(1.0) ) ) *
658 atan( IVithBar - value(1.0),
this->M_epsilon, ( 1 /
PI ), (1.0/2.0) ) *
659 dot( transpose( grad(phi_j) ) * F + transpose(F) * grad(phi_j) , Mith ) *
660 dot( F * Mith - value(1.0/3.0) * IVith * F_T, grad(phi_i) )
666 integrate( elements (
this->M_dispETFESpace->mesh() ),
667 this->M_dispFESpace->qr(),
668 this->M_dispETFESpace,
669 this->M_dispETFESpace,
670 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
671 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
672 atan( IVithBar -
value(1.0
),
this->M_epsilon, ( 1 /
PI ), (1.0/2.0) ) *
679 integrate( elements (
this->M_dispETFESpace->mesh() ),
680 this->M_dispFESpace->qr(),
681 this->M_dispETFESpace,
682 this->M_dispETFESpace,
683 value( 2.0/3.0 ) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * IVithBar * ( IVithBar - value(1.0) ) *
684 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar- value(1.0) ) * ( IVithBar- value(1.0) ) ) *
685 atan( IVithBar - value(1.0),
this->M_epsilon, ( 1 /
PI ), (1.0/2.0) ) *
686 dot( F_T * transpose( grad(phi_j) ) * F_T, grad(phi_i) )
693 integrate( elements (
this->M_dispETFESpace->mesh() ),
694 this->M_dispFESpace->qr(),
695 this->M_dispETFESpace,
696 this->M_dispETFESpace,
697 value( -2.0/3.0 ) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar - value(1.0) ) *
698 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar- value(1.0) ) * ( IVithBar- value(1.0) ) ) *
699 atan( IVithBar - value(1.0),
this->M_epsilon, ( 1 /
PI ), (1.0/2.0) ) *
700 dot( transpose( grad(phi_j) ) * F + transpose(F) * grad(phi_j) , Mith ) *
701 dot( F_T , grad( phi_i ) )
708 jacobian->globalAssemble();
715 template <
typename MeshType>
730 displayer->leaderPrint (
" \n*********************************\n ");
731 displayer->leaderPrint (
" Non-Linear S- Computing the Holzapfel nonlinear stiffness vector (N fibers Holzapfel)");
732 displayer->leaderPrint (
" \n*********************************\n ");
743 tensorF_Type F = ExpressionDefinitions::deformationGradient(
this->M_dispETFESpace, disp,
this->M_offset,
this->M_identity );
757 for(
UInt i(0); i <
this->M_vectorInterpolated.size() ; i++ )
764 interpolatedValue_Type fiberIth = ExpressionDefinitions::interpolateFiber(
this->M_dispETFESpace, *(
this->M_vectorInterpolated[ i ] ) );
780 integrate ( elements (
this->M_dispETFESpace->mesh() ),
781 this->M_dispFESpace->qr(),
782 this->M_dispETFESpace,
783 atan( IVithBar -
value(1.0
) ,
this->M_epsilon, ( 1 /
PI ), ( 1.0/2.0 ) ) *
784 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
785 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
792 integrate ( elements (
this->M_dispETFESpace->mesh() ),
793 this->M_dispFESpace->qr(),
794 this->M_dispETFESpace,
795 atan( IVithBar -
value(1.0
) ,
this->M_epsilon, ( 1 /
PI ), ( 1.0/2.0 ) ) *
796 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
797 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
805 this->M_stiff->globalAssemble();
809 template <
typename MeshType>
818 template <
typename MeshType>
829 template <
typename MeshType>
831 const Epetra_SerialDenseMatrix& tensorF,
832 const Epetra_SerialDenseMatrix& cofactorF,
833 const std::vector<Real>& invariants,
841 template <
typename MeshType>
852 tensorF_Type F = ExpressionDefinitions::deformationGradient(
this->M_dispETFESpace, *disp,
this->M_offset,
this->M_identity );
866 for(
UInt i(0); i <
this->M_vectorInterpolated.size() ; i++ )
873 interpolatedValue_Type fiberIth = ExpressionDefinitions::interpolateFiber(
this->M_dispETFESpace, *(
this->M_vectorInterpolated[ i ] ) );
890 evaluateNode( elements(
this->M_dispETFESpace->mesh() ),
892 this->M_dispETFESpace,
893 meas_K * dot( vectorFromMatrix( ( 1 / J ) *
894 ( atan( IVithBar -
value(1.0
) ,
this->M_epsilon, ( 1 /
PI ), ( 1.0/2.0 ) ) *
895 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
896 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
898 transpose(F) , 0 ),
phi_i )
904 evaluateNode( elements(
this->M_dispETFESpace->mesh() ),
906 this->M_dispETFESpace,
907 meas_K * dot( vectorFromMatrix( ( 1 / J ) *
908 ( atan( IVithBar -
value(1.0
) ,
this->M_epsilon, ( 1 /
PI ), ( 1.0/2.0 ) ) *
909 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
910 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
913 transpose(F) , 0 ),
phi_i )
915 sigma_1->globalAssemble();
917 evaluateNode( elements(
this->M_dispETFESpace->mesh() ),
919 this->M_dispETFESpace,
920 meas_K * dot( vectorFromMatrix( ( 1 / J ) *
921 ( atan( IVithBar -
value(1.0
) ,
this->M_epsilon, ( 1 /
PI ), ( 1.0/2.0 ) ) *
922 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
923 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
925 transpose(F) , 1 ),
phi_i )
928 evaluateNode( elements(
this->M_dispETFESpace->mesh() ),
930 this->M_dispETFESpace,
931 meas_K * dot( vectorFromMatrix( ( 1 / J ) *
932 ( atan( IVithBar -
value(1.0
) ,
this->M_epsilon, ( 1 /
PI ), ( 1.0/2.0 ) ) *
933 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
934 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
937 transpose(F) , 1 ),
phi_i )
939 sigma_2->globalAssemble();
941 evaluateNode( elements(
this->M_dispETFESpace->mesh() ),
943 this->M_dispETFESpace,
944 meas_K * dot( vectorFromMatrix( ( 1 / J ) *
945 ( atan( IVithBar -
value(1.0
) ,
this->M_epsilon, ( 1 /
PI ), ( 1.0/2.0 ) ) *
946 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
947 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
949 transpose(F) , 2 ),
phi_i )
952 evaluateNode( elements(
this->M_dispETFESpace->mesh() ),
954 this->M_dispETFESpace,
955 meas_K * dot( vectorFromMatrix( ( 1 / J ) *
956 ( atan( IVithBar -
value(1.0
) ,
this->M_epsilon, ( 1 /
PI ), ( 1.0/2.0 ) ) *
957 value( 2.0
) * value(
this->M_dataMaterial->ithStiffnessFibers( i ) ) * Jel * ( IVithBar -
value(1.0
) ) *
958 exp( value(
this->M_dataMaterial->ithNonlinearityFibers( i ) ) * ( IVithBar-
value(1.0
) ) * ( IVithBar-
value(1.0
) ) ) *
961 transpose(F) , 2 ),
phi_i )
963 sigma_3->globalAssemble();
969 template <
typename MeshType>
super::fiberFunction_Type fiberFunction_Type
void assignFunction(bcBase_Type &base)
Assign the function to the base of the BCHandler.
matrixPtr_Type const stiffMatrix() const
Get the Stiffness matrix.
super::FESpace_Type FESpace_Type
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.
void computeStiffness(const vector_Type &disp, const UInt iter, 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 Structu...
void evaluateActivationFibers(const vector_Type &displacement, vector_Type &fourthInvariant)
super::mapMarkerIndexesPtr_Type mapMarkerIndexesPtr_Type
super::mapMarkerVolumes_Type mapMarkerVolumes_Type
std::shared_ptr< vectorVolumes_Type > vectorVolumesPtr_Type
super::stretch_Type stretch_Type
super::data_Type data_Type
super::interpolatedValue_Type interpolatedValue_Type
super::ETFESpacePtr_Type ETFESpacePtr_Type
HolzapfelMaterialNonLinear()
super::minusT_Type minusT_Type
super::fiberFunctionPtr_Type fiberFunctionPtr_Type
super::FESpacePtr_Type FESpacePtr_Type
super::vectorsParametersPtr_Type vectorsParametersPtr_Type
std::shared_ptr< vectorIndexes_Type > vectorIndexesPtr_Type
super::tensorF_Type tensorF_Type
super::vectorsParameters_Type vectorsParameters_Type
mapMarkerIndexes_Type::const_iterator mapIteratorIndex_Type
std::vector< typename MeshType::element_Type * > vectorVolumes_Type
static const LifeV::UInt elm_nodes_num[]
matrixSmall_Type M_identity
super::displayerPtr_Type displayerPtr_Type
void computeReferenceConfigurations(const vector_Type &disp, const dataPtr_Type &dataMaterial, const displayerPtr_Type &displayer)
super::outerProduct_Type outerProduct_Type
super::isochoricStretch_Type isochoricStretch_Type
super::powerExpression_Type powerExpression_Type
virtual ~HolzapfelMaterialNonLinear()
StructuralAnisotropicConstitutiveLaw< MeshType > super
void computeKinematicsVariables(const VectorElemental &dk_loc)
Computes the new Stiffness vector for Neo-Hookean and Holzapfel materials in StructuralSolver given a...
super::mapMarkerIndexes_Type mapMarkerIndexes_Type
void apply(const vector_Type &sol, vector_Type &res, const mapMarkerVolumesPtr_Type mapsMarkerVolumes, const mapMarkerIndexesPtr_Type mapsMarkerIndexes, const displayerPtr_Type displayer)
super::matrixPtr_Type matrixPtr_Type
super::dataPtr_Type dataPtr_Type
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.
mapMarkerVolumes_Type::const_iterator mapIterator_Type
vectorPtr_Type const activatedUnitFiber(const UInt) const
Get the activation displacement.
const ExpressionPhiJ phi_j
Simple function to be used in the construction of an expression.
vectorPtr_Type const activatedDeterminant(const UInt) const
Get the activation displacement.
super::tensorC_Type tensorC_Type
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)...
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.
double Real
Generic real data.
super::mapMarkerVolumesPtr_Type mapMarkerVolumesPtr_Type
void computeLinearStiff(dataPtr_Type &, const mapMarkerVolumesPtr_Type, const mapMarkerIndexesPtr_Type)
Compute the Stiffness matrix in StructuralSolver::buildSystem()
super::vectorFiberFunction_Type vectorFiberFunction_Type
super::vector_Type vector_Type
vectorPtr_Type const selectionCriterion(const UInt) const
Specific for multimechanism.
super::vectorFiberFunctionPtr_Type vectorFiberFunctionPtr_Type
super::matrix_Type matrix_Type
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.
ExpressionScalar value(const Real &myValue)
Simple function to be used in the construction of an expression.
vectorPtr_Type M_stiff
construct the vectors for the parameters
MatrixSmall< 3, 3 > matrixSmall_Type
const ExpressionMeas meas_K
Instance to be used in the expressions.
vectorPtr_Type const stiffVector() const
Get the stiffness vector.
void setupFiberDirections(vectorFiberFunctionPtr_Type vectorOfFibers)
vectorPtr_Type const activationDisplacement(const UInt) const
Get the activation displacement.
super::determinantF_Type determinantF_Type
QuadratureRule - The basis class for storing and accessing quadrature rules.
StructuralAnisotropicConstitutiveLaw< MeshType > * createHolzapfelMaterialNonLinear()
ExpressionDphiJ grad(const ExpressionPhiJ &)
Simple function to be used in the construction of an expression.
super::traceTensor_Type traceTensor_Type
const ExpressionPhiI phi_i
Simple function to be used in the construction of an expression.
uint32_type UInt
generic unsigned integer (used mainly for addressing)
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.
ExpressionDphiI grad(const ExpressionPhiI &)
Simple function to be used in the construction of an expression.
std::vector< UInt > vectorIndexes_Type
super::vectorPtr_Type vectorPtr_Type