suanPan
Material Class Referenceabstract

A Material abstract base class. More...

#include <Material.h>

Inheritance diagram for Material:
Collaboration diagram for Material:

Public Member Functions

 Material (unsigned=0, MaterialType=MaterialType::D0, double=0.)
 
 Material (const Material &)=default
 
 Material (Material &&)=delete
 
Materialoperator= (const Material &)=delete
 
Materialoperator= (Material &&)=delete
 
 ~Material () override=default
 
double get_density () const
 
MaterialType get_material_type () const
 
PlaneType get_plane_type () const
 
int initialize_base (const shared_ptr< DomainBase > &)
 
virtual int initialize (const shared_ptr< DomainBase > &)=0
 
virtual void initialize_couple (const shared_ptr< DomainBase > &)
 
virtual void initialize_history (unsigned)
 
virtual void set_initial_history (const vec &)
 
void set_initialized (bool) const
 
void set_symmetric (bool) const
 
void set_support_couple (bool) const
 
bool is_initialized () const
 
bool is_symmetric () const
 
bool is_support_couple () const
 
void set_characteristic_length (double) const
 
double get_characteristic_length () const
 
virtual double get_parameter (ParameterType) const
 
virtual const vec & get_trial_strain ()
 
virtual const vec & get_trial_strain_rate ()
 
virtual const vec & get_trial_strain_acc ()
 
virtual const vec & get_trial_stress ()
 
virtual const mat & get_trial_stiffness ()
 
virtual const mat & get_trial_secant ()
 
virtual const mat & get_trial_damping ()
 
virtual const mat & get_trial_inertial ()
 
virtual const vec & get_current_strain ()
 
virtual const vec & get_current_strain_rate ()
 
virtual const vec & get_current_strain_acc ()
 
virtual const vec & get_current_stress ()
 
virtual const mat & get_current_stiffness ()
 
virtual const mat & get_current_secant ()
 
virtual const mat & get_current_damping ()
 
virtual const mat & get_current_inertial ()
 
virtual const vec & get_initial_history () const
 
virtual const mat & get_initial_stiffness () const
 
virtual const mat & get_initial_damping () const
 
virtual const mat & get_initial_inertial () const
 
virtual const vec & get_trial_curvature ()
 
virtual const vec & get_trial_couple_stress ()
 
virtual const mat & get_trial_couple_stiffness ()
 
virtual const vec & get_current_curvature ()
 
virtual const vec & get_current_couple_stress ()
 
virtual const mat & get_current_couple_stiffness ()
 
virtual const mat & get_initial_couple_stiffness () const
 
virtual unique_ptr< Materialget_copy ()=0
 
int update_incre_status (double)
 
int update_incre_status (double, double)
 
int update_incre_status (double, double, double)
 
int update_trial_status (double)
 
int update_trial_status (double, double)
 
int update_trial_status (double, double, double)
 
virtual int update_incre_status (const vec &)
 
virtual int update_incre_status (const vec &, const vec &)
 
virtual int update_incre_status (const vec &, const vec &, const vec &)
 
virtual int update_trial_status (const vec &)
 
virtual int update_trial_status (const vec &, const vec &)
 
virtual int update_trial_status (const vec &, const vec &, const vec &)
 
int update_couple_incre_status (double)
 
int update_couple_incre_status (double, double)
 
int update_couple_incre_status (double, double, double)
 
int update_couple_trial_status (double)
 
int update_couple_trial_status (double, double)
 
int update_couple_trial_status (double, double, double)
 
virtual int update_couple_incre_status (const vec &)
 
virtual int update_couple_incre_status (const vec &, const vec &)
 
virtual int update_couple_incre_status (const vec &, const vec &, const vec &)
 
virtual int update_couple_trial_status (const vec &)
 
virtual int update_couple_trial_status (const vec &, const vec &)
 
virtual int update_couple_trial_status (const vec &, const vec &, const vec &)
 
virtual int clear_status ()=0
 
virtual int commit_status ()=0
 
virtual int reset_status ()=0
 
virtual int clear_couple_status ()
 
virtual int commit_couple_status ()
 
virtual int reset_couple_status ()
 
virtual std::vector< vec > record (OutputType)
 
- Public Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&)=default
 
Tagoperator= (const Tag &)=delete
 
Tagoperator= (Tag &&)=delete
 
virtual ~Tag ()=default
 
void set_tag (unsigned) const
 
unsigned get_tag () const
 
void enable ()
 
void disable ()
 
void guard ()
 
void unguard ()
 
bool is_active () const
 
bool is_guarded () const
 
virtual void print ()
 

Friends

void ConstantStiffness (DataMaterial *)
 
void ConstantDamping (DataMaterial *)
 
void ConstantInertial (DataMaterial *)
 
void ConstantCoupleStiffness (DataCoupleMaterial *)
 
void PureWrapper (Material *)
 

Additional Inherited Members

- Protected Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&)=default
 
Tagoperator= (const Tag &)=delete
 
Tagoperator= (Tag &&)=delete
 
virtual ~Tag ()=default
 
void set_tag (unsigned) const
 
unsigned get_tag () const
 
void enable ()
 
void disable ()
 
void guard ()
 
void unguard ()
 
bool is_active () const
 
bool is_guarded () const
 
virtual void print ()
 
- Protected Attributes inherited from DataMaterial
const double density = 0.
 
const MaterialType material_type = MaterialType::D0
 
const PlaneType plane_type = PlaneType::N
 
const double tolerance = 1E-14
 
const double characteristic_length = -1.
 
vec current_strain {}
 
vec current_strain_rate {}
 
vec current_strain_acc {}
 
vec current_stress {}
 
vec trial_strain {}
 
vec trial_strain_rate {}
 
vec trial_strain_acc {}
 
vec trial_stress {}
 
vec incre_strain {}
 
vec incre_strain_rate {}
 
vec incre_strain_acc {}
 
vec incre_stress {}
 
vec initial_history {}
 
vec current_history {}
 
vec trial_history {}
 
mat initial_stiffness {}
 
mat current_stiffness {}
 
mat trial_stiffness {}
 
mat initial_damping {}
 
mat current_damping {}
 
mat trial_damping {}
 
mat initial_inertial {}
 
mat current_inertial {}
 
mat trial_inertial {}
 
- Protected Attributes inherited from DataCoupleMaterial
vec current_curvature {}
 
vec current_couple_stress {}
 
vec trial_curvature {}
 
vec trial_couple_stress {}
 
vec incre_curvature {}
 
vec incre_couple_stress {}
 
mat initial_couple_stiffness {}
 
mat current_couple_stiffness {}
 
mat trial_couple_stiffness {}
 

Detailed Description

A Material abstract base class.

Author
tlc
Date
30/05/2020
Version
0.1.2

Constructor & Destructor Documentation

◆ Material() [1/3]

Material::Material ( unsigned  T = 0,
MaterialType  MT = MaterialType::D0,
double  D = 0. 
)
explicit

◆ Material() [2/3]

Material::Material ( const Material )
default

◆ Material() [3/3]

Material::Material ( Material &&  )
delete

◆ ~Material()

Material::~Material ( )
overridedefault

Member Function Documentation

◆ clear_couple_status()

int Material::clear_couple_status ( )
virtual

◆ clear_status()

◆ commit_couple_status()

int Material::commit_couple_status ( )
virtual

◆ commit_status()

◆ get_characteristic_length()

double Material::get_characteristic_length ( ) const
Here is the caller graph for this function:

◆ get_copy()

unique_ptr< Material > Material::get_copy ( )
pure virtual

Implemented in MaterialExample, ExternalMaterial, ConcreteCM, ConcreteExp, ConcreteTable, ConcreteTsai, ConcreteK4, CustomStrainDegradation, CustomStressDegradation, Dhakal, TrilinearStrainDegradation, AsymmElastic1D, BilinearElastic1D, CustomElastic1D, Elastic1D, MultilinearElastic1D, PolyElastic1D, Sinh1D, Tanh1D, AFC, BilinearOO, BilinearPO, BoucWen, BWBN, CoulombFriction, Flag, Gap01, MPF, MultilinearOO, MultilinearPO, RambergOsgood, SlipLock, SteelBRB, Trivial, BilinearViscosity, CustomViscosity, Kelvin, Maxwell, Nonviscous01, Viscosity01, Viscosity02, ArmstrongFrederick1D, Bilinear1D, BilinearMises1D, CustomGurson1D, CustomMises1D, ExpGurson1D, ExpMises1D, MultilinearMises1D, VAFCRP1D, Parallel, Sequential, Uniaxial, Concrete21, Concrete22, DuncanSelig, AxisymmetricElastic, Elastic2D, Axisymmetric, Laminated, PlaneStrain, PlaneStress, Rebar2D, Rotation2D, BilinearCC, CustomCC, ExpCC, ParabolicCC, CDP, CDPM2, CustomCDP, Rebar3D, TableCDP, LinearDamage, BilinearDP, CustomDP, ExpDP, BlatzKo, IsotropicElastic3D, MooneyRivlin, NLE3D01, OrthotropicElastic3D, Yeoh, BilinearHoffman, CustomHoffman, ExpHoffman, TimberPD, DafaliasManzari, SimpleSand, ArmstrongFrederick, BilinearJ2, BilinearPeric, CustomGurson, CustomJ2, ExpGurson, ExpJ2, MultilinearJ2, PolyJ2, TableGurson, VAFCRP, Rotation3D, Stacked, Substepping, ElasticOS, OS146, OS146S, MaterialTemplate, and Fluid.

Here is the caller graph for this function:

◆ get_current_couple_stiffness()

const mat & Material::get_current_couple_stiffness ( )
virtual

◆ get_current_couple_stress()

const vec & Material::get_current_couple_stress ( )
virtual

◆ get_current_curvature()

const vec & Material::get_current_curvature ( )
virtual

◆ get_current_damping()

const mat & Material::get_current_damping ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_current_inertial()

const mat & Material::get_current_inertial ( )
virtual

◆ get_current_secant()

const mat & Material::get_current_secant ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_current_stiffness()

const mat & Material::get_current_stiffness ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_current_strain()

const vec & Material::get_current_strain ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_current_strain_acc()

const vec & Material::get_current_strain_acc ( )
virtual

◆ get_current_strain_rate()

const vec & Material::get_current_strain_rate ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_current_stress()

const vec & Material::get_current_stress ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_density()

double Material::get_density ( ) const
Here is the caller graph for this function:

◆ get_initial_couple_stiffness()

const mat & Material::get_initial_couple_stiffness ( ) const
virtual

◆ get_initial_damping()

const mat & Material::get_initial_damping ( ) const
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_initial_history()

const vec & Material::get_initial_history ( ) const
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_initial_inertial()

const mat & Material::get_initial_inertial ( ) const
virtual

◆ get_initial_stiffness()

const mat & Material::get_initial_stiffness ( ) const
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_material_type()

MaterialType Material::get_material_type ( ) const
Here is the caller graph for this function:

◆ get_parameter()

◆ get_plane_type()

PlaneType Material::get_plane_type ( ) const

◆ get_trial_couple_stiffness()

const mat & Material::get_trial_couple_stiffness ( )
virtual

◆ get_trial_couple_stress()

const vec & Material::get_trial_couple_stress ( )
virtual

◆ get_trial_curvature()

const vec & Material::get_trial_curvature ( )
virtual

◆ get_trial_damping()

const mat & Material::get_trial_damping ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_trial_inertial()

const mat & Material::get_trial_inertial ( )
virtual

◆ get_trial_secant()

const mat & Material::get_trial_secant ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_trial_stiffness()

const mat & Material::get_trial_stiffness ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_trial_strain()

const vec & Material::get_trial_strain ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_trial_strain_acc()

const vec & Material::get_trial_strain_acc ( )
virtual

◆ get_trial_strain_rate()

const vec & Material::get_trial_strain_rate ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ get_trial_stress()

const vec & Material::get_trial_stress ( )
virtual

Reimplemented in Substepping.

Here is the caller graph for this function:

◆ initialize()

◆ initialize_base()

int Material::initialize_base ( const shared_ptr< DomainBase > &  )
Here is the caller graph for this function:

◆ initialize_couple()

void Material::initialize_couple ( const shared_ptr< DomainBase > &  )
virtual

Reimplemented in Elastic2D.

◆ initialize_history()

void Material::initialize_history ( unsigned  size)
virtual

Reimplemented in ExternalMaterial.

Here is the caller graph for this function:

◆ is_initialized()

bool Material::is_initialized ( ) const

◆ is_support_couple()

bool Material::is_support_couple ( ) const

◆ is_symmetric()

bool Material::is_symmetric ( ) const

◆ operator=() [1/2]

Material & Material::operator= ( const Material )
delete

◆ operator=() [2/2]

Material & Material::operator= ( Material &&  )
delete

◆ record()

std::vector< vec > Material::record ( OutputType  P)
virtual

Reimplemented in ExternalMaterial, StrainDegradation, StressDegradation, Material1D, Kelvin, Maxwell, NonlinearViscosity, Nonviscous01, NonlinearGurson1D, Parallel, Sequential, Elastic2D, Material2D, Axisymmetric, Laminated, PlaneStrain, Rebar2D, Rotation2D, CDPM2, NonlinearCDP, Rebar3D, TimberPD, Material3D, NonlinearGurson, Rotation3D, Stacked, StressWrapper, Substepping, and OS146S.

Here is the caller graph for this function:

◆ reset_couple_status()

int Material::reset_couple_status ( )
virtual

◆ reset_status()

◆ set_characteristic_length()

void Material::set_characteristic_length ( double  L) const
Here is the caller graph for this function:

◆ set_initial_history()

void Material::set_initial_history ( const vec &  H)
virtual

Reimplemented in ExternalMaterial, and Substepping.

Here is the caller graph for this function:

◆ set_initialized()

void Material::set_initialized ( bool  F) const

◆ set_support_couple()

void Material::set_support_couple ( bool  F) const
Here is the caller graph for this function:

◆ set_symmetric()

void Material::set_symmetric ( bool  F) const
Here is the caller graph for this function:

◆ update_couple_incre_status() [1/6]

int Material::update_couple_incre_status ( const vec &  i_curvature)
virtual
Here is the call graph for this function:

◆ update_couple_incre_status() [2/6]

int Material::update_couple_incre_status ( const vec &  i_curvature,
const vec &   
)
virtual
Here is the call graph for this function:

◆ update_couple_incre_status() [3/6]

int Material::update_couple_incre_status ( const vec &  i_curvature,
const vec &  ,
const vec &   
)
virtual
Here is the call graph for this function:

◆ update_couple_incre_status() [4/6]

int Material::update_couple_incre_status ( double  i_strain)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_couple_incre_status() [5/6]

int Material::update_couple_incre_status ( double  i_strain,
double  i_strain_rate 
)
Here is the call graph for this function:

◆ update_couple_incre_status() [6/6]

int Material::update_couple_incre_status ( double  i_strain,
double  i_strain_rate,
double  i_strain_acc 
)
Here is the call graph for this function:

◆ update_couple_trial_status() [1/6]

int Material::update_couple_trial_status ( const vec &  t_curvature)
virtual

◆ update_couple_trial_status() [2/6]

int Material::update_couple_trial_status ( const vec &  t_curvature,
const vec &   
)
virtual
Here is the call graph for this function:

◆ update_couple_trial_status() [3/6]

int Material::update_couple_trial_status ( const vec &  t_curvature,
const vec &  ,
const vec &   
)
virtual
Here is the call graph for this function:

◆ update_couple_trial_status() [4/6]

int Material::update_couple_trial_status ( double  t_strain)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_couple_trial_status() [5/6]

int Material::update_couple_trial_status ( double  t_strain,
double  t_strain_rate 
)
Here is the call graph for this function:

◆ update_couple_trial_status() [6/6]

int Material::update_couple_trial_status ( double  t_strain,
double  t_strain_rate,
double  t_strain_acc 
)
Here is the call graph for this function:

◆ update_incre_status() [1/6]

int Material::update_incre_status ( const vec &  i_strain)
virtual
Here is the call graph for this function:

◆ update_incre_status() [2/6]

int Material::update_incre_status ( const vec &  i_strain,
const vec &  i_strain_rate 
)
virtual
Here is the call graph for this function:

◆ update_incre_status() [3/6]

int Material::update_incre_status ( const vec &  i_strain,
const vec &  i_strain_rate,
const vec &  i_strain_acc 
)
virtual
Here is the call graph for this function:

◆ update_incre_status() [4/6]

int Material::update_incre_status ( double  i_strain)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_incre_status() [5/6]

int Material::update_incre_status ( double  i_strain,
double  i_strain_rate 
)
Here is the call graph for this function:

◆ update_incre_status() [6/6]

int Material::update_incre_status ( double  i_strain,
double  i_strain_rate,
double  i_strain_acc 
)
Here is the call graph for this function:

◆ update_trial_status() [1/6]

◆ update_trial_status() [2/6]

int Material::update_trial_status ( const vec &  t_strain,
const vec &  t_strain_rate 
)
virtual

Reimplemented in ExternalMaterial, CoulombFriction, Kelvin, Maxwell, NonlinearViscosity, Nonviscous01, and Parallel.

Here is the call graph for this function:

◆ update_trial_status() [3/6]

int Material::update_trial_status ( const vec &  t_strain,
const vec &  t_strain_rate,
const vec &  t_strain_acc 
)
virtual
Here is the call graph for this function:

◆ update_trial_status() [4/6]

int Material::update_trial_status ( double  t_strain)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_trial_status() [5/6]

int Material::update_trial_status ( double  t_strain,
double  t_strain_rate 
)
Here is the call graph for this function:

◆ update_trial_status() [6/6]

int Material::update_trial_status ( double  t_strain,
double  t_strain_rate,
double  t_strain_acc 
)
Here is the call graph for this function:

Friends And Related Function Documentation

◆ ConstantCoupleStiffness

void ConstantCoupleStiffness ( DataCoupleMaterial M)
friend

◆ ConstantDamping

void ConstantDamping ( DataMaterial M)
friend

◆ ConstantInertial

void ConstantInertial ( DataMaterial M)
friend

◆ ConstantStiffness

void ConstantStiffness ( DataMaterial M)
friend

◆ PureWrapper

void PureWrapper ( Material M)
friend

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