Physical Quantities  v1.0.0
C++ library of physical quantities, physical models, and units of measure for scientific computing. https://github.com/acodcha/phq
Classes | Public Types | Public Member Functions | List of all members
PhQ::ConstitutiveModel Class Referenceabstract

Abstract base class for a material's constitutive model, which is a model that defines the relationship between the stress and the strain and strain rate at any point in the material. More...

#include "ConstitutiveModel.hpp"

Classes

class  CompressibleNewtonianFluid
 Constitutive model for a compressible Newtonian fluid. This is the simplest constitutive model for a compressible fluid. It is similar to the model for an incompressible Newtonian fluid, but also includes the effect of the volumetric component of the strain rate tensor in addition to its deviatoric component. More...
 
class  ElasticIsotropicSolid
 Constitutive model for an elastic isotropic solid. This is the simplest constitutive model for a deformable solid material. More...
 
class  IncompressibleNewtonianFluid
 Constitutive model for an incompressible Newtonian fluid. This is the simplest constitutive model for a fluid. The viscous stress tensor at a point is a linear function of only the local strain rate tensor at that point. More...
 

Public Types

enum class  Type : int8_t { CompressibleNewtonianFluid , ElasticIsotropicSolid , IncompressibleNewtonianFluid }
 Type of a material's constitutive model. More...
 

Public Member Functions

constexpr ConstitutiveModel ()=default
 Default constructor. Constructs this constitutive model. More...
 
virtual ~ConstitutiveModel () noexcept=default
 Destructor. Destroys this constitutive model. More...
 
constexpr ConstitutiveModel (const ConstitutiveModel &other)=default
 Copy constructor. Constructs a constitutive model by copying another one. More...
 
constexpr ConstitutiveModel (ConstitutiveModel &&other) noexcept=default
 Move constructor. Constructs a constitutive model by moving another one. More...
 
ConstitutiveModeloperator= (const ConstitutiveModel &other)=default
 Copy assignment operator. Assigns this constitutive model by copying another one. More...
 
ConstitutiveModeloperator= (ConstitutiveModel &&other) noexcept=default
 Move assignment operator. Assigns this constitutive model by moving another one. More...
 
virtual Type GetType () const noexcept=0
 Returns this constitutive model's type. More...
 
virtual PhQ::Stress< float > Stress (const PhQ::Strain< float > &strain, const PhQ::StrainRate< float > &strain_rate) const =0
 Returns the stress resulting from a given strain and strain rate. More...
 
virtual PhQ::Stress< double > Stress (const PhQ::Strain< double > &strain, const PhQ::StrainRate< double > &strain_rate) const =0
 Returns the stress resulting from a given strain and strain rate. More...
 
virtual PhQ::Stress< long double > Stress (const PhQ::Strain< long double > &strain, const PhQ::StrainRate< long double > &strain_rate) const =0
 Returns the stress resulting from a given strain and strain rate. More...
 
virtual PhQ::Stress< float > Stress (const PhQ::Strain< float > &strain) const =0
 Returns the stress resulting from a given strain. More...
 
virtual PhQ::Stress< double > Stress (const PhQ::Strain< double > &strain) const =0
 Returns the stress resulting from a given strain. More...
 
virtual PhQ::Stress< long double > Stress (const PhQ::Strain< long double > &strain) const =0
 Returns the stress resulting from a given strain. More...
 
virtual PhQ::Stress< float > Stress (const PhQ::StrainRate< float > &strain_rate) const =0
 Returns the stress resulting from a given strain rate. More...
 
virtual PhQ::Stress< double > Stress (const PhQ::StrainRate< double > &strain_rate) const =0
 Returns the stress resulting from a given strain rate. More...
 
virtual PhQ::Stress< long double > Stress (const PhQ::StrainRate< long double > &strain_rate) const =0
 Returns the stress resulting from a given strain rate. More...
 
virtual PhQ::Strain< float > Strain (const PhQ::Stress< float > &stress) const =0
 Returns the strain resulting from a given stress. More...
 
virtual PhQ::Strain< double > Strain (const PhQ::Stress< double > &stress) const =0
 Returns the strain resulting from a given stress. More...
 
virtual PhQ::Strain< long double > Strain (const PhQ::Stress< long double > &stress) const =0
 Returns the strain resulting from a given stress. More...
 
virtual PhQ::StrainRate< float > StrainRate (const PhQ::Stress< float > &stress) const =0
 Returns the strain rate resulting from a given stress. More...
 
virtual PhQ::StrainRate< double > StrainRate (const PhQ::Stress< double > &stress) const =0
 Returns the strain rate resulting from a given stress. More...
 
virtual PhQ::StrainRate< long double > StrainRate (const PhQ::Stress< long double > &stress) const =0
 Returns the strain rate resulting from a given stress. More...
 
virtual std::string Print () const =0
 Prints this constitutive model as a string. More...
 
virtual std::string JSON () const =0
 Serializes this constitutive model as a JSON message. More...
 
virtual std::string XML () const =0
 Serializes this constitutive model as an XML message. More...
 
virtual std::string YAML () const =0
 Serializes this constitutive model as a YAML message. More...
 

Detailed Description

Abstract base class for a material's constitutive model, which is a model that defines the relationship between the stress and the strain and strain rate at any point in the material.

Definition at line 42 of file ConstitutiveModel.hpp.

Member Enumeration Documentation

◆ Type

enum PhQ::ConstitutiveModel::Type : int8_t
strong

Type of a material's constitutive model.

Enumerator
CompressibleNewtonianFluid 

Compressible Newtonian fluid constitutive model.

ElasticIsotropicSolid 

Elastic isotropic solid constitutive model.

IncompressibleNewtonianFluid 

Incompressible Newtonian fluid constitutive model.

Definition at line 57 of file ConstitutiveModel.hpp.

Constructor & Destructor Documentation

◆ ConstitutiveModel() [1/3]

constexpr PhQ::ConstitutiveModel::ConstitutiveModel ( )
constexprdefault

Default constructor. Constructs this constitutive model.

◆ ~ConstitutiveModel()

virtual PhQ::ConstitutiveModel::~ConstitutiveModel ( )
virtualdefaultnoexcept

Destructor. Destroys this constitutive model.

◆ ConstitutiveModel() [2/3]

constexpr PhQ::ConstitutiveModel::ConstitutiveModel ( const ConstitutiveModel other)
constexprdefault

Copy constructor. Constructs a constitutive model by copying another one.

◆ ConstitutiveModel() [3/3]

constexpr PhQ::ConstitutiveModel::ConstitutiveModel ( ConstitutiveModel &&  other)
constexprdefaultnoexcept

Move constructor. Constructs a constitutive model by moving another one.

Member Function Documentation

◆ GetType()

virtual Type PhQ::ConstitutiveModel::GetType ( ) const
inlinepure virtualnoexcept

◆ JSON()

virtual std::string PhQ::ConstitutiveModel::JSON ( ) const
inlinepure virtual

◆ operator=() [1/2]

ConstitutiveModel& PhQ::ConstitutiveModel::operator= ( const ConstitutiveModel other)
default

Copy assignment operator. Assigns this constitutive model by copying another one.

◆ operator=() [2/2]

ConstitutiveModel& PhQ::ConstitutiveModel::operator= ( ConstitutiveModel &&  other)
defaultnoexcept

Move assignment operator. Assigns this constitutive model by moving another one.

◆ Print()

virtual std::string PhQ::ConstitutiveModel::Print ( ) const
inlinepure virtual

◆ Strain() [1/3]

virtual PhQ::Strain<double> PhQ::ConstitutiveModel::Strain ( const PhQ::Stress< double > &  stress) const
inlinepure virtual

◆ Strain() [2/3]

virtual PhQ::Strain<float> PhQ::ConstitutiveModel::Strain ( const PhQ::Stress< float > &  stress) const
inlinepure virtual

◆ Strain() [3/3]

virtual PhQ::Strain<long double> PhQ::ConstitutiveModel::Strain ( const PhQ::Stress< long double > &  stress) const
inlinepure virtual

◆ StrainRate() [1/3]

virtual PhQ::StrainRate<double> PhQ::ConstitutiveModel::StrainRate ( const PhQ::Stress< double > &  stress) const
inlinepure virtual

◆ StrainRate() [2/3]

virtual PhQ::StrainRate<float> PhQ::ConstitutiveModel::StrainRate ( const PhQ::Stress< float > &  stress) const
inlinepure virtual

◆ StrainRate() [3/3]

virtual PhQ::StrainRate<long double> PhQ::ConstitutiveModel::StrainRate ( const PhQ::Stress< long double > &  stress) const
inlinepure virtual

◆ Stress() [1/9]

virtual PhQ::Stress<double> PhQ::ConstitutiveModel::Stress ( const PhQ::Strain< double > &  strain) const
inlinepure virtual

◆ Stress() [2/9]

virtual PhQ::Stress<double> PhQ::ConstitutiveModel::Stress ( const PhQ::Strain< double > &  strain,
const PhQ::StrainRate< double > &  strain_rate 
) const
inlinepure virtual

◆ Stress() [3/9]

virtual PhQ::Stress<float> PhQ::ConstitutiveModel::Stress ( const PhQ::Strain< float > &  strain) const
inlinepure virtual

◆ Stress() [4/9]

virtual PhQ::Stress<float> PhQ::ConstitutiveModel::Stress ( const PhQ::Strain< float > &  strain,
const PhQ::StrainRate< float > &  strain_rate 
) const
inlinepure virtual

◆ Stress() [5/9]

virtual PhQ::Stress<long double> PhQ::ConstitutiveModel::Stress ( const PhQ::Strain< long double > &  strain) const
inlinepure virtual

◆ Stress() [6/9]

virtual PhQ::Stress<long double> PhQ::ConstitutiveModel::Stress ( const PhQ::Strain< long double > &  strain,
const PhQ::StrainRate< long double > &  strain_rate 
) const
inlinepure virtual

◆ Stress() [7/9]

virtual PhQ::Stress<double> PhQ::ConstitutiveModel::Stress ( const PhQ::StrainRate< double > &  strain_rate) const
inlinepure virtual

◆ Stress() [8/9]

virtual PhQ::Stress<float> PhQ::ConstitutiveModel::Stress ( const PhQ::StrainRate< float > &  strain_rate) const
inlinepure virtual

◆ Stress() [9/9]

virtual PhQ::Stress<long double> PhQ::ConstitutiveModel::Stress ( const PhQ::StrainRate< long double > &  strain_rate) const
inlinepure virtual

◆ XML()

virtual std::string PhQ::ConstitutiveModel::XML ( ) const
inlinepure virtual

◆ YAML()

virtual std::string PhQ::ConstitutiveModel::YAML ( ) const
inlinepure virtual

The documentation for this class was generated from the following file: