dynLattice
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
SpecialCosseratRodModel Class Reference

Special Cosserat rod finite element model with geometrically exact kinematics. More...

#include "SpecialCosseratRodModel.h"

Inheritance diagram for SpecialCosseratRodModel:
Inheritance graph
[legend]
Collaboration diagram for SpecialCosseratRodModel:
Collaboration graph
[legend]

Public Member Functions

 SpecialCosseratRodModel (const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
 Constructor.
 
virtual bool takeAction (const String &action, const Properties &params, const Properties &globdat) override
 Handle model actions.
 

Static Public Member Functions

static Ref< Model > makeNew (const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
 Create new SpecialCosseratRodModel instance.
 
static void declare ()
 Declare model type to factory.
 

Static Public Attributes

Property identifiers
static const char * TYPE_NAME = "specialCosseratRod"
 Model type name.
 
static const char * TRANS_DOF_DEFAULT = "trans_"
 Default translational DOF prefix.
 
static const char * ROT_DOF_DEFAULT = "rot_"
 Default rotational DOF prefix.
 
static const char * TRANS_DOF_NAMES = "dofNamesTrans"
 Translational DOF names property.
 
static const char * ROT_DOF_NAMES = "dofNamesRot"
 Rotational DOF names property.
 
static const char * SYMMETRIC_ONLY = "symmetric_tanget_stiffness"
 Symmetric tangent stiffness property.
 
static const char * MATERIAL_Y_DIR = "material_ey"
 Material y-direction property.
 
static const char * GIVEN_NODES = "given_dir_nodes"
 Given direction nodes property.
 
static const char * GIVEN_DIRS = "given_dir_dirs"
 Given directions property.
 
static const char * LUMPED_MASS = "lumpedMass"
 Lumped mass property.
 
static const char * HINGES = "hinges"
 Hinges property.
 
DOF constants
static const idx_t TRANS_DOF_COUNT = 3
 Number of translational DOFs.
 
static const idx_t ROT_DOF_COUNT = 3
 Number of rotational DOFs.
 
static const Slice TRANS_PART = jem::SliceFromTo(0, TRANS_DOF_COUNT)
 Translational DOF slice.
 
static const Slice ROT_PART = jem::SliceFromTo(TRANS_DOF_COUNT, TRANS_DOF_COUNT + ROT_DOF_COUNT)
 Rotational DOF slice.
 

Detailed Description

The SpecialCosseratRodModel implements a geometrically exact rod formulation based on the Cosserat theory (Simo-Reissner rod). It features 6 DOF per node (3 translational + 3 rotational) and supports large deformations, rotations, and complex material behavior including plasticity.

Features:

See also
Reissner (1981)
Simo, Vu-Quoc (1986)
Crisfield, Jelenić (1999)
Antman (2005)
Eugster (2015)

Constructor & Destructor Documentation

◆ SpecialCosseratRodModel()

SpecialCosseratRodModel::SpecialCosseratRodModel ( const String &  name,
const Properties &  conf,
const Properties &  props,
const Properties &  globdat 
)
explicit
Parameters
nameModel name
confActually used configuration properties (output)
propsUser-specified model properties
globdatGlobal data container

Member Function Documentation

◆ declare()

void SpecialCosseratRodModel::declare ( )
static

◆ makeNew()

Ref< Model > SpecialCosseratRodModel::makeNew ( const String &  name,
const Properties &  conf,
const Properties &  props,
const Properties &  globdat 
)
static
Parameters
nameModel name
confActually used configuration properties (output)
propsUser-specified model properties
globdatGlobal data container
Returns
New model instance

◆ takeAction()

bool SpecialCosseratRodModel::takeAction ( const String &  action,
const Properties &  params,
const Properties &  globdat 
)
overridevirtual
Parameters
actionAction name
paramsAction parameters
globdatGlobal data container
Returns
true if action was handled

Member Data Documentation

◆ GIVEN_DIRS

const char * SpecialCosseratRodModel::GIVEN_DIRS = "given_dir_dirs"
static

◆ GIVEN_NODES

const char * SpecialCosseratRodModel::GIVEN_NODES = "given_dir_nodes"
static

◆ HINGES

const char * SpecialCosseratRodModel::HINGES = "hinges"
static

◆ LUMPED_MASS

const char * SpecialCosseratRodModel::LUMPED_MASS = "lumpedMass"
static

◆ MATERIAL_Y_DIR

const char * SpecialCosseratRodModel::MATERIAL_Y_DIR = "material_ey"
static

◆ ROT_DOF_COUNT

const idx_t SpecialCosseratRodModel::ROT_DOF_COUNT = 3
static

◆ ROT_DOF_DEFAULT

const char * SpecialCosseratRodModel::ROT_DOF_DEFAULT = "rot_"
static

◆ ROT_DOF_NAMES

const char * SpecialCosseratRodModel::ROT_DOF_NAMES = "dofNamesRot"
static

◆ ROT_PART

const Slice SpecialCosseratRodModel::ROT_PART = jem::SliceFromTo(TRANS_DOF_COUNT, TRANS_DOF_COUNT + ROT_DOF_COUNT)
static

◆ SYMMETRIC_ONLY

const char * SpecialCosseratRodModel::SYMMETRIC_ONLY = "symmetric_tanget_stiffness"
static

◆ TRANS_DOF_COUNT

const idx_t SpecialCosseratRodModel::TRANS_DOF_COUNT = 3
static

◆ TRANS_DOF_DEFAULT

const char * SpecialCosseratRodModel::TRANS_DOF_DEFAULT = "trans_"
static

◆ TRANS_DOF_NAMES

const char * SpecialCosseratRodModel::TRANS_DOF_NAMES = "dofNamesTrans"
static

◆ TRANS_PART

const Slice SpecialCosseratRodModel::TRANS_PART = jem::SliceFromTo(0, TRANS_DOF_COUNT)
static

◆ TYPE_NAME

const char * SpecialCosseratRodModel::TYPE_NAME = "specialCosseratRod"
static