b2api
B2000++ API Reference Manual, VERSION 4.6
 
Loading...
Searching...
No Matches
b2000::SolidMechanics25D< T > Class Template Reference

#include "b2solid_mechanics.H"

Inheritance diagram for b2000::SolidMechanics25D< T >:
Collaboration diagram for b2000::SolidMechanics25D< T >:

Public Member Functions

virtual LinearType linear (const int layer_id=-1) const
 
virtual bool isotropic (const int layer_id=-1) const
 
virtual bool path_dependent (const int layer_id=-1) const
 
virtual SolidMechanics25D< T > * copy (int layer_)
 
virtual void get_static_nonlinear_shell_stress (Model *model, const EquilibriumSolution equilibrium_solution, const double time, const double delta_time, GradientContainer *gradient_container, SolverHints *solver_hints, const Element *element, const double el_coordinates[2], const b2linalg::Vector< double, b2linalg::Vdense_constref > nodes_interpolation, const T bg_coordinates[3], const T covariant_base[6][3], const bool use_covariant_base, const T displacement_gradient[6][3], const T shell_strain[8], T shell_stress[8], T d_shell_stress_d_strain[36], T d_shell_stress_d_time[8])
 
virtual void set_static_nonlinear_shell_stress (Model *model, const double time, const double delta_time, GradientContainer *gradient_container, const Element *element, const double el_coordinates[2], const b2linalg::Vector< T, b2linalg::Vdense_constref > nodes_interpolation, const T bg_coordinates[3], const T covariant_base[6][3], const bool use_covariant_base, const T displacement_gradient[6][3], const T shell_strain[8], const T shell_stress[8], const T d_shell_stress_d_ec[2][8])
 
virtual void get_shell_stress (Model *model, const EquilibriumSolution equilibrium_solution, const double time, const double delta_time, GradientContainer *gradient_container, SolverHints *solver_hints, const Element *element, const double el_coordinates[2], const b2linalg::Vector< double, b2linalg::Vdense_constref > nodes_interpolation, const T bg_coordinates[3], const T covariant_base[6][3], const bool use_covariant_base, const T volume, const T displacement_gradient[6][3], const T shell_strain[8], const T strain_dot[8], const T velocity[6], const T acceleration[6], T shell_stress[8], T d_shell_stress_d_strain[36], T d_stress_d_strain_dot[36], T d_shell_stress_d_time[8], T d_stress_d_time[6], T inertia_force[6], T density[3])
 
- Public Member Functions inherited from b2000::ElementProperty
const std::string & get_object_name () const override
 
- Public Member Functions inherited from b2000::Object
virtual ~Object ()
 

Additional Inherited Members

- Static Public Attributes inherited from b2000::Object
static ObjectType type
 

Detailed Description

template<typename T>
class b2000::SolidMechanics25D< T >

The base class for the material API for 2.5D (shell) stress elements.

The strain, stress and constitutive tensor follow the notation used in the book "Finite Element Procedures" by K.J. Bathe:

The strain covariant components are placed in column vector [e11, e22, e33, 2e12, 2e23, 2e13].

The stress contravariant components are placed in column vector [s11, s22, s33, s12, s23, s13].

The constitutive contravariant components are placed in lower packed matrix format

Member Function Documentation

◆ copy()

template<typename T >
virtual SolidMechanics25D< T > * b2000::SolidMechanics25D< T >::copy ( int  layer_)
inlinevirtual

Create a copy of the object to be used in nonlinear analysis of path dependent material.

◆ get_shell_stress()

template<typename T >
virtual void b2000::SolidMechanics25D< T >::get_shell_stress ( Model model,
const EquilibriumSolution  equilibrium_solution,
const double  time,
const double  delta_time,
GradientContainer gradient_container,
SolverHints solver_hints,
const Element element,
const double  el_coordinates[2],
const b2linalg::Vector< double, b2linalg::Vdense_constref >  nodes_interpolation,
const T  bg_coordinates[3],
const T  covariant_base[6][3],
const bool  use_covariant_base,
const T  volume,
const T  displacement_gradient[6][3],
const T  shell_strain[8],
const T  strain_dot[8],
const T  velocity[6],
const T  acceleration[6],
shell_stress[8],
d_shell_stress_d_strain[36],
d_stress_d_strain_dot[36],
d_shell_stress_d_time[8],
d_stress_d_time[6],
inertia_force[6],
density[3] 
)
inlinevirtual

Return the shell stress of the material

◆ get_static_nonlinear_shell_stress()

template<typename T >
virtual void b2000::SolidMechanics25D< T >::get_static_nonlinear_shell_stress ( Model model,
const EquilibriumSolution  equilibrium_solution,
const double  time,
const double  delta_time,
GradientContainer gradient_container,
SolverHints solver_hints,
const Element element,
const double  el_coordinates[2],
const b2linalg::Vector< double, b2linalg::Vdense_constref >  nodes_interpolation,
const T  bg_coordinates[3],
const T  covariant_base[6][3],
const bool  use_covariant_base,
const T  displacement_gradient[6][3],
const T  shell_strain[8],
shell_stress[8],
d_shell_stress_d_strain[36],
d_shell_stress_d_time[8] 
)
inlinevirtual

Return the static shell stress of the material

◆ isotropic()

template<typename T >
virtual bool b2000::SolidMechanics25D< T >::isotropic ( const int  layer_id = -1) const
inlinevirtual
Returns
true if the material is isotropic. In this case, the natural base is not used by the material object and can be omitted (passing a null pointer).

If layer_id is not given, the isotropic propriety is for all the laminate (note that a laminate with more than on layer is not isotropic). Otherwise the isotropic propriety is for the given layer.

Reimplemented in b2000::b2dbv3::ElementPropertyStressExample25D, and b2000::b2dbv3::ElementPropertyStressExample.

◆ linear()

template<typename T >
virtual LinearType b2000::SolidMechanics25D< T >::linear ( const int  layer_id = -1) const
inlinevirtual
Returns
'linear' if the material is linear. In this case, a nonlinear analysis can use the linear methods instead of the nonlinear ones. Return nonlinear if the material is nonlinear. Return linear_on_sub_domain if the material is linear only on a sub domain of the strain value

If layer_id is not given, the linearity propriety is for all the layers. Otherwise the linearity propriety is for the given layer.

Reimplemented in b2000::b2dbv3::ElementPropertyStressExample25D, and b2000::b2dbv3::ElementPropertyStressExample.

◆ path_dependent()

template<typename T >
virtual bool b2000::SolidMechanics25D< T >::path_dependent ( const int  layer_id = -1) const
inlinevirtual
Returns
true if the material is path dependent. In this case and if a nonlinear analysis is performed, the material object must by copied for each integration point. That is for each material points where the nonlinear method get_static_nonlinear_stress or get_dynamic_nonlinear_stress are called during the analysis.

If layer_id is not given, the path-dependent propriety is for all the laminate. Otherwise the path-dependent propriety is for the given layer.

Reimplemented in b2000::b2dbv3::ElementPropertyStressExample.

◆ set_static_nonlinear_shell_stress()

template<typename T >
virtual void b2000::SolidMechanics25D< T >::set_static_nonlinear_shell_stress ( Model model,
const double  time,
const double  delta_time,
GradientContainer gradient_container,
const Element element,
const double  el_coordinates[2],
const b2linalg::Vector< T, b2linalg::Vdense_constref >  nodes_interpolation,
const T  bg_coordinates[3],
const T  covariant_base[6][3],
const bool  use_covariant_base,
const T  displacement_gradient[6][3],
const T  shell_strain[8],
const T  shell_stress[8],
const T  d_shell_stress_d_ec[2][8] 
)
inlinevirtual

Set the stress and derivative value in the gradient container


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