LifeV
structure/fem/AssemblyElementalStructure.hpp File Reference

File containing the procedures for the local assembly of the differential operators. More...

#include <string>
#include <iostream>
#include <Epetra_LAPACK.h>
#include <Epetra_BLAS.h>
#include <Epetra_SerialDenseMatrix.h>
#include <Epetra_SerialDenseVector.h>
#include <lifev/core/array/MatrixElemental.hpp>
#include <lifev/core/array/VectorElemental.hpp>
#include <lifev/core/LifeV.hpp>
#include <lifev/core/fem/FESpace.hpp>
#include <lifev/core/fem/CurrentFEManifold.hpp>
#include <lifev/core/fem/CurrentFE.hpp>
#include <lifev/core/fem/DOF.hpp>
#include <lifev/core/array/VectorEpetra.hpp>
+ Include dependency graph for structure/fem/AssemblyElementalStructure.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 LifeV
 Default Physical Solver.
 
 LifeV::AssemblyElementalStructure
 

Functions

template<typename FunctorType , typename MeshType , typename MapType >
void saveVectorAccordingToFunctor (const std::shared_ptr< FESpace< MeshType, MapType > > dispFESpace, const FunctorType functor, const VectorEpetra &originVector, const std::shared_ptr< VectorEpetra > statusVector, const std::shared_ptr< VectorEpetra > saveVector, const UInt offset)
 Save displacement according to a functor. More...
 
template<typename FunctorType , typename MeshType , typename MapType >
void saveBooleanVectorAccordingToFunctor (const std::shared_ptr< FESpace< MeshType, MapType > > dispFESpace, const FunctorType &functor, const std::shared_ptr< VectorEpetra > originVector, std::shared_ptr< VectorEpetra > saveVector, const UInt offset)
 
void computeGradientLocalDisplacement (boost::multi_array< Real, 3 > &gradientLocalDisplacement, const VectorElemental &uk_loc, const CurrentFE &fe)
 Gradient of the displacement on the local element. More...
 
void computeLocalDeformationGradient (const VectorElemental &uk_loc, std::vector< Epetra_SerialDenseMatrix > &tensorF, const CurrentFE &fe)
 Deformation Gradient on the local element. More...
 
void computeLocalDeformationGradientWithoutIdentity (const VectorElemental &uk_loc, std::vector< Epetra_SerialDenseMatrix > &tensorF, const CurrentFE &fe)
 Gradient on the local element. More...
 
void stiff_derdiv (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 METHODS SHARED BETWEEN LINEAR ELASTIC MODEL AND ST.VENANT-KIRCHHOFF MODEL These two methods are implemented in AssemblyElemental.cpp. More...
 
void stiff_dergradbis (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary second term of the nonlinear stiffness matrix for St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_divgrad (Real coef, const VectorElemental &uk_loc, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary third term of the nonlinear stiffness matrix for St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_gradgrad (Real coef, const VectorElemental &uk_loc, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fourth term of the nonlinear stiffness matrix for St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_dergrad_gradbis (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fifth term of the nonlinear stiffness matrix for St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_dergrad_gradbis_Tr (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fifth-2 term of the nonlinear stiffness matrix for St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_gradgradTr_gradbis (Real coef, const VectorElemental &uk_loc, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary sixth term of the nonlinear stiffness matrix for St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_dergrad (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 METHODS FOR THE JACOBIAN MATRIX. More...
 
void stiff_divgrad_2 (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary second term of the Jacobian matrix for the nonlinear stiffness matrix of the St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_gradgrad_2 (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary third term of the Jacobian matrix for the nonlinear stiffness matrix of the St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_dergrad_gradbis_2 (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fourth term of the Jacobian matrix for the nonlinear stiffness matrix of the St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_dergrad_gradbis_Tr_2 (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fifth term of the Jacobian matrix for the nonlinear stiffness matrix of the St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_gradgradTr_gradbis_2 (Real coef, const boost::multi_array< Real, 3 > &gradientLocalDisplacement, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary sixth term of the Jacobian matrix for the nonlinear stiffness matrix of the St.Venant-Kirchhoff model (see the reference) More...
 
void stiff_gradgradTr_gradbis_3 (Real coef, const VectorElemental &uk_loc, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary seventh term of the Jacobian matrix for the nonlinear stiffness matrix of the St.Venant-Kirchhoff model (see the reference) More...
 
void source_Pvol (Real coef, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, VectorElemental &elvec, const CurrentFE &fe)
 METHODS SHARED BETWEEN NEO-HOOKEAN AND EXPONENTIAL MODELS The volumetric part for Neo-Hookean and Exponential models is the same Methods for the volumetric part of the stiffness vector. More...
 
void stiff_Jac_Pvol_1term (Real coef, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, MatrixElemental &elmat, const CurrentFE &fe)
 Methods for the volumetric part of the Jacobian matrix. More...
 
void stiff_Jac_Pvol_2term (Real coef, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary second volumetric term of the nonlinear Jacobian matrix of the Neo-Hookean and Exponential models (see the reference) More...
 
void source_P1iso_NH (Real coef, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, VectorElemental &elvec, const CurrentFE &fe)
 METHODS FOR NEO-HOOKEAN MODEL Methods for the isochoric part of the stiffness vector. More...
 
void computeInvariantsRightCauchyGreenTensor (std::vector< LifeV::Real > &invariants, const Epetra_SerialDenseMatrix &tensorF, Epetra_SerialDenseMatrix &cofactorF)
 METHODS FOR TENSORIAL CALCULUS In this part of the namespace, the methods to perform basics operations on tensors are defined. More...
 
void computeInvariantsRightCauchyGreenTensor (std::vector< LifeV::Real > &invariants, const Epetra_SerialDenseMatrix &tensorF)
 Computation of the Right Cauchy Green tensor given the tensor F. More...
 
void computeCauchyStressTensor (Epetra_SerialDenseMatrix &cauchy, Epetra_SerialDenseMatrix &firstPiola, LifeV::Real det, Epetra_SerialDenseMatrix &tensorF)
 
void computeEigenvalues (const Epetra_SerialDenseMatrix &cauchy, std::vector< LifeV::Real > &eigenvaluesR, std::vector< LifeV::Real > &eigenvaluesI)
 
void stiff_Jac_P1iso_NH_1term (Real coef, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, MatrixElemental &elmat, const CurrentFE &fe)
 Methods for the isochoric part of the Jacobian matrix. More...
 
void stiff_Jac_P1iso_NH_2term (Real coef, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary second nonlinear isochoric Jacobian matrix for Neo-Hookean model (see the reference) More...
 
void stiff_Jac_P1iso_NH_3term (Real coef, const std::vector< Real > &Jk, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary third nonlinear isochoric Jacobian matrix for Neo-Hookean model (see the reference) More...
 
void stiff_Jac_P1iso_NH_4term (Real coef, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fourth nonlinear isochoric Jacobian matrix for Neo-Hookean model (see the reference) More...
 
void stiff_Jac_P1iso_NH_5term (Real coef, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fifth nonlinear isochoric Jacobian matrix for Neo-Hookean model (see the reference) More...
 
void source_P1iso_Exp (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, VectorElemental &elvec, const CurrentFE &fe)
 METHODS FOR EXPONENTIAL MODEL Methods for the isochoric part of the stiffness vector. More...
 
void stiff_Jac_P1iso_Exp_1term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Methods for the isochoric part of the Jacobian matrix. More...
 
void stiff_Jac_P1iso_Exp_2term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary second nonlinear isochoric Jacobian matrix for Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_Exp_3term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary third nonlinear isochoric Jacobian matrix for Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_Exp_4term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fourth nonlinear isochoric Jacobian matrix for Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_Exp_5term (Real coef, Real coefExp, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fifth nonlinear isochoric Jacobian matrix for Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_Exp_6term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary sixth nonlinear isochoric Jacobian matrix for Exponential model (see the reference) More...
 
void source_P1iso_VKPenalized (Real lambda, Real mu, const boost::multi_array< Real, 3 > &FkMinusTransposed, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Ic_isok, const std::vector< Real > &Ic_k, const std::vector< Real > &Jack_k, VectorElemental &elvec, const CurrentFE &fe)
 METHOD FOR THE ST. More...
 
void source_P2iso_VKPenalized (Real mu, const boost::multi_array< Real, 3 > &FkMinusTransposed, const boost::multi_array< Real, 3 > &FkCk, const std::vector< Real > &Ic_Squared, const std::vector< Real > &Jk, VectorElemental &elvec, const CurrentFE &fe)
 Elementary nonlinear isochoric stiffness vector for St. Venant-Kirchhoff Penalized model. More...
 
void stiff_Jac_P1iso_VKPenalized_0term (Real lambda, Real mu, const boost::multi_array< Real, 3 > &FkMinusTransposed, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_k, const std::vector< Real > &IcIso_k, MatrixElemental &elmat, const CurrentFE &fe)
 Methdos for the Jacobian of the St. More...
 
void stiff_Jac_P1iso_VKPenalized_1term (Real coeff, const boost::multi_array< Real, 3 > &FkMinusTransposed, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_k, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary first nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_2term (Real coef, const boost::multi_array< Real, 3 > &FkMinusTransposed, const std::vector< Real > &Jk, const std::vector< Real > &Ic_k, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary third nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_3term (Real coef, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary second nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_4term (Real coef, const boost::multi_array< Real, 3 > &FkMinusTransposed, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_k, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fourth nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_5term (Real coef, Real secondCoef, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fifth nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_6term (Real coef, Real secondCoef, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, const boost::multi_array< Real, 3 > &Fk, const boost::multi_array< Real, 3 > &FkMinusTransposed, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary sixth nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_7term (Real coef, Real secondCoef, const boost::multi_array< Real, 3 > &FkMinusTransposed, const std::vector< Real > &Ic_isok, const std::vector< Real > &Ic_k, const std::vector< Real > &Jk, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary seventh nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_8term (Real coef, const std::vector< Real > &Jack_k, const boost::multi_array< Real, 3 > &FkMinusTransposed, const boost::multi_array< Real, 3 > &FkCk, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary seventh nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_9term (Real coef, const std::vector< Real > &Jack_k, const std::vector< Real > &Ic_kSquared, const boost::multi_array< Real, 3 > &FkMinusTransposed, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary seventh nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_10term (Real coef, const std::vector< Real > &Jack_k, const boost::multi_array< Real, 3 > &Ck, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary eigth nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_11term (Real coef, const std::vector< Real > &Jk, const boost::multi_array< Real, 3 > &Fk, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary sixth nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_12term (Real coef, const std::vector< Real > &Jk, const boost::multi_array< Real, 3 > &Fk, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary tenth nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_13term (Real coef, const std::vector< Real > &Jk, const std::vector< Real > &Ic_kSquared, const boost::multi_array< Real, 3 > &FkMinusTransposed, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary eleventh nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void stiff_Jac_P1iso_VKPenalized_14term (Real coef, const std::vector< Real > &Jk, const boost::multi_array< Real, 3 > &FkCk, const boost::multi_array< Real, 3 > &FkMinusTransposed, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary twelveth nonlinear isochoric Jacobian matrix for VK-Penalized model (see the reference) More...
 
void source_P1iso_SecondOrderExponential (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &trCisok, VectorElemental &elvec, const CurrentFE &fe)
 Methods for second order exponential law Methods for the first Piola-Kirchhoff tensor. More...
 
void stiff_Jac_P1iso_SecondOrderExp_1term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Methods for the Jacobian matrix Elementary first nonlinear isochoric Jacobian matrix for Second Order Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_SecondOrderExp_2term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary second nonlinear isochoric Jacobian matrix for Second Order Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_SecondOrderExp_3term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary third nonlinear isochoric Jacobian matrix for Second Order Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_SecondOrderExp_4term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const boost::multi_array< Real, 3 > &Fk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, const std::vector< Real > &Ic_k, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fourth nonlinear isochoric Jacobian matrix for Second Order Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_SecondOrderExp_5term (Real coef, Real coefExp, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary fifth nonlinear isochoric Jacobian matrix for Second Order Exponential model (see the reference) More...
 
void stiff_Jac_P1iso_SecondOrderExp_6term (Real coef, Real coefExp, const boost::multi_array< Real, 3 > &CofFk, const std::vector< Real > &Jk, const std::vector< Real > &Ic_isok, MatrixElemental &elmat, const CurrentFE &fe)
 Elementary sixth nonlinear isochoric Jacobian matrix for Second Order Exponential model (see the reference) More...
 

Detailed Description

File containing the procedures for the local assembly of the differential operators.

Author
Gianmarco Mengaldo gianm.nosp@m.arco.nosp@m..meng.nosp@m.aldo.nosp@m.@gmai.nosp@m.l.co.nosp@m.m
Paolo Tricerri gianm.nosp@m.arco.nosp@m..meng.nosp@m.aldo.nosp@m.@gmai.nosp@m.l.co.nosp@m.m Paolo Tricerri paolo.nosp@m..tri.nosp@m.cerri.nosp@m.@epf.nosp@m.l.ch

All the methods are described in the report StructuralSolver framework in LifeV: Description and Usage

Definition in file structure/fem/AssemblyElementalStructure.hpp.