suanPan
|
A MaterialExample material class. More...
#include <MaterialExample.h>
Public Member Functions | |
MaterialExample (unsigned=0, double=2E5, double=400., double=.05, double=0., double=0.) | |
The constructor of material model depends on the specific model to be implemented. But for the base Material class, it takes only three input arguments: More... | |
int | initialize (const shared_ptr< DomainBase > &) override |
Unless the target material model involves other material models to compute responses, in general, it is not necessary to get additional information from other parts of the model. More... | |
unique_ptr< Material > | get_copy () override |
The get_copy() method should always be implemented with make_unique . In case the model defines other memory management, developers may need to further provide a copy ctor to make make_unique work. More... | |
int | update_trial_status (const vec &) override |
There are two states we are managing at any time point. The current state is the converged state from the last time substep. Since it is converged, all data shall be valid and accurate. The trial state stores the response computed based on converged state and new trial strain. It may be discarded, committed or overwritten with new trial values. More... | |
int | clear_status () override |
Operations are required to achieve the following objective. More... | |
int | commit_status () override |
Operations are required to achieve the following objective. More... | |
int | reset_status () override |
Operations are required to achieve the following objective. More... | |
void | print () override |
Public Member Functions inherited from Material | |
Material (unsigned=0, MaterialType=MaterialType::D0, double=0.) | |
Material (const Material &)=default | |
Material (Material &&)=delete | |
Material & | operator= (const Material &)=delete |
Material & | operator= (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< Material > | get_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 | |
Tag & | operator= (const Tag &)=delete |
Tag & | operator= (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 () |
|
explicit |
The constructor of material model depends on the specific model to be implemented. But for the base Material
class, it takes only three input arguments:
Here we are implementing a uniaxial bilinear hardening model, hence MaterialType::D1
is passed to the base. The material type will be used to validate with associated elements/sections to ensure the consistency of the sizes of data passed between objects.
|
overridevirtual |
Operations are required to achieve the following objective.
current state -> 0 trial state -> 0
Implements Material.
|
overridevirtual |
Operations are required to achieve the following objective.
current state <- trial state
Implements Material.
|
overridevirtual |
The get_copy()
method should always be implemented with make_unique
. In case the model defines other memory management, developers may need to further provide a copy ctor to make make_unique
work.
!!!NEVER DO A MANUAL COPY OF DATA IN THIS METHOD!!!
Implements Material.
|
overridevirtual |
Unless the target material model involves other material models to compute responses, in general, it is not necessary to get additional information from other parts of the model.
In general cases, history variables shall be initialised and initial stiffness (and initial damping if appropriate) shall be set to proper value.
To enable initial values for history variables, build-in trial_history
and current_history
shall be used, developers can initialise them via method initialise_history()
so that initial values set by initial
command will not be overwritten.
In this example, instead of using build-in history variables, we manage history variables, namely back stress and plastic strain, by ourselves.
Implements Material.
|
overridevirtual |
Reimplemented from Tag.
|
overridevirtual |
Operations are required to achieve the following objective.
current state -> trial state
Implements Material.
|
overridevirtual |
There are two states we are managing at any time point. The current state is the converged state from the last time substep. Since it is converged, all data shall be valid and accurate. The trial state stores the response computed based on converged state and new trial strain. It may be discarded, committed or overwritten with new trial values.
WE ALWAYS COMPUTE TRIAL STATE BASED ON CURRENT STATE AND NEW TRIAL STRAIN NEVER COMPUTE RESPONSE BASED ON ANY INFORMATION FROM UNCONVERGED STATE
Developers who are not familiar with classic plasticity theory may consult textbooks for details.
t_strain | trial strain |
Reimplemented from Material.