#include "b2fortran_element_property.H"


Public Member Functions | |
| void | init (BranchProperty *branch_property_, MaterialProperty *material_, int integration_order_[3], const std::vector< b2000::csda< double > > &tl_, const std::vector< b2000::csda< double > > &ecc_, int bmtype_, std::bitset< 6 > endreleases_[2], const std::vector< b2000::csda< double > > &mbase_) |
| Called by the Domain object. | |
| const int * | get_integration_order () const override |
| Domain & | get_domain () |
| void | laminate (b2linalg::Vector< double, b2linalg::Vdense_constref > nodes_interpolation, b2000::csda< double > &laminate_begin, b2000::csda< double > &laminate_end) const |
| void | layer (b2linalg::Vector< double, b2linalg::Vdense_constref > nodes_interpolation, const int layer_id, double &layer_begin, double &layer_end) const |
| bool | get_material_ref_3d (b2000::Model *model, const Element *element, const double coordinates[3], const int layer_id, const double covariant_base[3][3], double material_ref[3][3]) |
| bool | get_material_ref_3d (b2000::Model *model, const Element *element, const b2000::csda< double > coordinates[3], const int layer_id, const b2000::csda< double > covariant_base[3][3], b2000::csda< double > material_ref[3][3]) |
| bool | get_material_ref_25d (b2000::Model *model, const Element *element, const double coordinates[3], const int layer_id, const double covariant_base[3][3], const bool isotropic, double material_ref[3][3]) |
| bool | get_material_ref_25d (b2000::Model *model, const Element *element, const b2000::csda< double > coordinates[3], const int layer_id, const b2000::csda< double > covariant_base[3][3], const bool isotropic, b2000::csda< double > material_ref[3][3]) |
| bool | get_material_ref_2d (b2000::Model *model, const Element *element, const double coordinates[3], const int layer_id, const double covariant_base[2][2], double material_ref[2][2]) |
| bool | get_material_ref_2d (b2000::Model *model, const Element *element, const b2000::csda< double > coordinates[3], const int layer_id, const b2000::csda< double > covariant_base[2][2], b2000::csda< double > material_ref[2][2]) |
| const RTable & | get_material (const int layer_id) |
| bool | have_temperature () const |
| bool | get_material_temperature (const Element *element, b2linalg::Vector< double, b2linalg::Vdense_constref > nodes_interpolation, const int nb_thickness_interpolation, const double thickness_interpolation[], const double time, double &temp, double &d_temp_d_time) const |
| const std::string & | get_object_name () const override |
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 |
Base class for material implementations. Material implementations derive from this class and one of the SolidMechanics classes. It has functions that allow to calculate the laminate and per-layer dimensions, and the orthogonal reference frame of the material.
|
inline |
|
inlineoverridevirtual |
Implements b2000::FortranElementProperty.
|
inline |
| bool b2000::b2dbv3::FortranElementProperty::get_material_ref_25d | ( | b2000::Model * | model, |
| const Element * | element, | ||
| const b2000::csda< double > | coordinates[3], | ||
| const int | layer_id, | ||
| const b2000::csda< double > | covariant_base[3][3], | ||
| const bool | isotropic, | ||
| b2000::csda< double > | material_ref[3][3] | ||
| ) |
For elastic materials, calculate the orthogonal material reference for 2.5D (shell) elements.
| model | A pointer to the Model instance. |
| element | A pointer to the element instance. |
| coordinates | The position of the material point. |
| layer_id | The layer (starts at 0). |
| covariant_base | The Jacobi matrix at the material point, relating the physical coordinates to the element natural coordinates. It is calculated by the element instance. The matrix is column-major. |
| isotropic | Whether the material is isotropic. |
| material_ref | The material reference frame (output). |
| bool b2000::b2dbv3::FortranElementProperty::get_material_ref_25d | ( | b2000::Model * | model, |
| const Element * | element, | ||
| const double | coordinates[3], | ||
| const int | layer_id, | ||
| const double | covariant_base[3][3], | ||
| const bool | isotropic, | ||
| double | material_ref[3][3] | ||
| ) |
For elastic materials, calculate the orthogonal material reference for 2.5D (shell) elements.
| model | A pointer to the Model instance. |
| element | A pointer to the element instance. |
| coordinates | The position of the material point. |
| layer_id | The layer (starts at 0). |
| covariant_base | The Jacobi matrix at the material point, relating the physical coordinates to the element natural coordinates. It is calculated by the element instance. The matrix is column-major. |
| isotropic | Whether the material is isotropic. |
| material_ref | The material reference frame (output). |
| bool b2000::b2dbv3::FortranElementProperty::get_material_ref_2d | ( | b2000::Model * | model, |
| const Element * | element, | ||
| const b2000::csda< double > | coordinates[3], | ||
| const int | layer_id, | ||
| const b2000::csda< double > | covariant_base[2][2], | ||
| b2000::csda< double > | material_ref[2][2] | ||
| ) |
For elasticity materials, calculate the orthogonal material reference frame for 2D elements.
| model | A pointer to the Model instance. |
| element | A pointer to the element instance. |
| coordinates | The position of the material point. |
| layer_id | The layer (starts at 0). |
| covariant_base | The Jacobi matrix at the material point, relating the physical coordinates to the element natural coordinates. It is calculated by the element instance. The matrix is column-major. |
| material_ref | The material reference frame (output). |
| bool b2000::b2dbv3::FortranElementProperty::get_material_ref_2d | ( | b2000::Model * | model, |
| const Element * | element, | ||
| const double | coordinates[3], | ||
| const int | layer_id, | ||
| const double | covariant_base[2][2], | ||
| double | material_ref[2][2] | ||
| ) |
For elasticity materials, calculate the orthogonal material reference frame for 2D elements.
| model | A pointer to the Model instance. |
| element | A pointer to the element instance. |
| coordinates | The position of the material point. |
| layer_id | The layer (starts at 0). |
| covariant_base | The Jacobi matrix at the material point, relating the physical coordinates to the element natural coordinates. It is calculated by the element instance. The matrix is column-major. |
| material_ref | The material reference frame (output). |
| bool b2000::b2dbv3::FortranElementProperty::get_material_ref_3d | ( | b2000::Model * | model, |
| const Element * | element, | ||
| const b2000::csda< double > | coordinates[3], | ||
| const int | layer_id, | ||
| const b2000::csda< double > | covariant_base[3][3], | ||
| b2000::csda< double > | material_ref[3][3] | ||
| ) |
For elastic materials, calculate the orthogonal material reference for 3D elements.
| model | A pointer to the Model instance. |
| element | A pointer to the element instance. |
| coordinates | The position of the material point. |
| layer_id | The layer (starts at 0). |
| covariant_base | The Jacobi matrix at the material point, relating the physical coordinates to the element natural coordinates. It is calculated by the element instance. The matrix is column-major. |
| material_ref | The material reference frame (output). |
| bool b2000::b2dbv3::FortranElementProperty::get_material_ref_3d | ( | b2000::Model * | model, |
| const Element * | element, | ||
| const double | coordinates[3], | ||
| const int | layer_id, | ||
| const double | covariant_base[3][3], | ||
| double | material_ref[3][3] | ||
| ) |
For elastic materials, calculate the orthogonal material reference for 3D elements.
| model | A pointer to the Model instance. |
| element | A pointer to the element instance. |
| coordinates | The position of the material point. |
| layer_id | The layer (starts at 0). |
| covariant_base | The Jacobi matrix at the material point, relating the physical coordinates to the element natural coordinates. It is calculated by the element instance. The matrix is column-major. |
| material_ref | The material reference frame (output). |
|
inline |
For elasticity materials. Interpolate the material temperature (difference) field and its time-variation.
| element | Pointer to the Element instance. |
| nodes_interpolation | Array of interpolation coefficients (the element shape functions). The length of the array must match the element's number of nodes. |
| nb_thickness_interpolation | Length of through-the-thickness interpolation array. For 3D elements, it is 1, for shell elements, it is 2. |
| thickness_interpolation | Array of interpolation coefficients through-the-thickness. For 3D elements, this array is [1.]. For shell elements, it is passed by the element instance and is [.5 * (1 - t), .5 * (1 + t)] where t is the element coordinate in the thickness direction and goes |
| time | The analysis time as given to the element instance. |
| temp | The interpolated temperature. |
| d_temp_d_time | The time derivative of the interpolated temperature. For constant-temperature fields, this is 0. |
|
inlineoverridevirtual |
Reimplemented from b2000::Object.
|
inline |
|
inline |
Calculate the total laminate dimensions using the interpolated eccentricity in conjunction with the laminate definition (in case of laminates) or the interpolated element thickness.
| nb_nodes | Number of nodes of the element. |
| nodes_interpolation | Array of interpolation coefficients (the element shape functions). The length of the array must match the element's number of nodes. |
| laminate_begin | The position of the bottom of the laminate (-0.5 * thickness + eccentricity). |
| laminate_begin | The position of the top of the laminate (+0.5 * thickness + eccentricity). |
|
inline |
Calculate the dimensions of a single layer. For non-laminates this equivalent to calling laminate().
| nb_nodes | Number of nodes of the element. |
| nodes_interpolation | Array of interpolation coefficients (the element shape functions). The length of the array must match the element's number of nodes. |
| laminate_begin | The position of the bottom of the layer. |
| laminate_begin | The position of the top of the layer. |