42 #ifndef StructuralConstitutiveLawData_H 43 #define StructuralConstitutiveLawData_H 49 #include <boost/shared_ptr.hpp> 51 #include <lifev/core/LifeV.hpp> 52 #include <lifev/core/util/StringUtility.hpp> 53 #include <lifev/core/filter/GetPot.hpp> 54 #include <lifev/core/fem/TimeData.hpp> 55 #include <lifev/core/fem/TimeAdvanceData.hpp> 117 void setup (
const GetPot& dataFile,
const std::string& section =
"solid" );
181 M_poisson[material] = poisson;
192 M_young[material] = young;
203 M_bulk[material] = bulk;
214 M_alpha[material] = alpha;
225 M_gamma[material] = gamma;
394 return M_solidTypeIsotropic;
404 return M_constitutiveLaw;
409 return M_solidTypeAnisotropic;
419 return M_stiffnessParametersFibers[ i ];
424 return M_nonlinearityParametersFibers[ i ];
429 return M_characteristicStretch[ i ];
434 return M_distributionParametersFibers[ i ];
444 return M_fiberActivation;
void setPoisson(const Real &poisson, const UInt &material)
Set poisson.
Real young(const UInt &material) const
Get solid young modulus.
void setDensity(const Real &density)
Set density.
void setThickness(const Real &thickness)
Set thickness.
Real bulk(const UInt &material=1) const
Get bulk modulus (nearly incompressible materials)
UInt M_maxSubIterationNumber
const Real ithStiffnessFibers(const UInt i)
std::shared_ptr< time_Type > timePtr_Type
const Real toleranceActivation(void)
std::string M_solidTypeIsotropic
void setGamma(const Real &gamma, const UInt &material)
Set Gamma (nearly imcompressible materials)
Real gamma(const UInt &material=1) const
Get gamma parameter (nearly incompressible materials)
std::string M_order
Space discretization.
const UInt numberFibersFamilies()
timeAdvancePtr_Type dataTimeAdvance() const
Get data time advance container.
const std::string & solidTypeAnisotropic()
const Real & externalPressure() const
Get the external pressure to be applied to the external surface of the solid.
timePtr_Type dataTime() const
Get data time container.
void setAlpha(const Real &alpha, const UInt &material)
Set Alfa modulus (nearly incompressible materials)
const UInt & verbose() const
Get verbose level.
materialContainer_Type::const_iterator materialContainerIterator_Type
const std::string & lawType()
Get law type.
materialContainer_Type M_young
const Real & rho() const
Get solid density.
std::vector< UInt > vectorFlags_Type
timeAdvancePtr_Type M_timeAdvance
const vectorFlags_Type & vectorFlags() const
Get the vector of the set material_flags.
const std::string & solidTypeIsotropic()
Get isotropic law.
vectorParameters_Type M_distributionParametersFibers
std::string M_constitutiveLaw
Real M_toleranceActivation
UInt M_verbose
Miscellaneous.
const Real ithNonlinearityFibers(const UInt i)
void setTimeAdvanceData(const timeAdvancePtr_Type timeAdvanceData)
Set data time advance container.
materialContainer_Type M_gamma
TimeAdvanceData timeAdvance_Type
vectorFlags_Type M_vectorMaterialFlags
void setExternalPressure(const Real &externalPressure)
Set data external pressure for the external surface of the solid.
const Real errorTolerance() const
Get solid etamax.
void setup(const GetPot &dataFile, const std::string §ion="solid")
Read the dataFile and set all the quantities.
Real alpha(const UInt &material=1) const
Get alpha parameter (nearly incompressible materials)
void setTimeData(const timePtr_Type timeData)
Set data time container.
const Real relativeTolerance() const
Get solid reltol newton.
UInt M_NonLinearLineSearch
const std::string fiberActivation(void)
const Real ithDistributionFibers(const UInt i)
Real lambda(const UInt &material) const
Get solid first lame coefficient.
vectorParameters_Type M_stiffnessParametersFibers
const UInt NonLinearLineSearch() const
Get solid nonLinear Line Search ofr Newton.
const std::string & order() const
Get FE order.
materialContainer_Type M_bulk
Bulk modulus k, alpha, gamma.
double Real
Generic real data.
const std::string & constitutiveLaw()
Get anisotropic law.
materialContainer_Type M_alpha
StructuralConstitutiveLawData()
Empty Constructor.
std::vector< Real > vectorParameters_Type
Real mu(const UInt &material) const
Get solid second Lame coefficient.
std::string M_solidTypeAnisotropic
materialContainer_Type M_poisson
Young Modulus and Poisson ratio.
const UInt maxSubIterationNumber() const
Get solid thickness.
vectorParameters_Type M_nonlinearityParametersFibers
std::map< UInt, Real > materialContainer_Type
vectorParameters_Type M_characteristicStretch
const Real ithCharacteristicStretch(const UInt i)
std::shared_ptr< timeAdvance_Type > timeAdvancePtr_Type
void setYoung(const Real &young, const UInt &material)
Set Young modulus.
std::string M_fiberActivation
const Real & thickness() const
Get solid thickness.
const bool & getUseExactJacobian() const
Get whether to use or not exact Jacobian.
const Real smoothness(void)
DataElasticStructure - Data container for solid problems with elastic structure.
Real poisson(const UInt &material) const
Get solid poisson coefficient.
timePtr_Type M_time
Data containers for time and mesh.
const Real absoluteTolerance() const
Get solid thickness.
StructuralConstitutiveLawData & operator=(const StructuralConstitutiveLawData &structuralConstitutiveLawData)
Operator=.
StructuralConstitutiveLawData(const StructuralConstitutiveLawData &structuralConstitutiveLawData)
Copy constructor.
uint32_type UInt
generic unsigned integer (used mainly for addressing)
void setBulk(const Real &bulk, const UInt &material)
Set bulk modulus (nearly incompressible materials)
void showMe(std::ostream &output=std::cout) const
Display the values.