NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
Loading...
Searching...
No Matches
nimble::Element Class Referenceabstract

Abstract class for representing an element. More...

#include <nimble_element.h>

Inheritance diagram for nimble::Element:
nimble::HexElement

Public Member Functions

NIMBLE_FUNCTION Element ()=default
 Default constructor.
 
virtual NIMBLE_FUNCTION ~Element ()=default
 Default virtual destructor.
 
virtual int Dim () const =0
 Virtual function returning the spatial dimension.
 
virtual int NumNodesPerElement () const =0
 Virtual function returning the number of nodes in the element.
 
virtual int NumIntegrationPointsPerElement () const =0
 Virtual function returning the number of integration points per element.
 
virtual void ComputeLumpedMass (double density, const double *node_reference_coords, double *lumped_mass) const =0
 Virtual function to compute the lumped mass.
 
virtual double ComputeCharacteristicLength (const double *node_coords)=0
 Virtual function to compute the characteristic length.
 
virtual void ComputeVolumeAverage (const double *node_current_coords, int num_quantities, const double *int_pt_quantities, double &volume, double *volume_averaged_quantity) const =0
 
virtual void ComputeDeformationGradients (const double *node_reference_coords, const double *node_current_coords, double *deformation_gradients) const =0
 Virtual function to compute the deformation gradients.
 
virtual void ComputeTangent (const double *node_reference_coords, const double *material_tangent, double *tangent)=0
 Virtual function to compute the tangent.
 
virtual void ComputeNodalForces (const double *node_current_coords, const double *int_pt_stresses, double *node_forces)=0
 Virtual function to compute the nodal forces.
 

Protected Attributes

const int K_S_XX_ = 0
 
const int K_S_YY_ = 1
 
const int K_S_ZZ_ = 2
 
const int K_S_XY_ = 3
 
const int K_S_YZ_ = 4
 
const int K_S_ZX_ = 5
 
const int K_S_YX_ = 3
 
const int K_S_ZY_ = 4
 
const int K_S_XZ_ = 5
 
const int K_F_XX_ = 0
 
const int K_F_YY_ = 1
 
const int K_F_ZZ_ = 2
 
const int K_F_XY_ = 3
 
const int K_F_YZ_ = 4
 
const int K_F_ZX_ = 5
 
const int K_F_YX_ = 6
 
const int K_F_ZY_ = 7
 
const int K_F_XZ_ = 8
 

Detailed Description

Abstract class for representing an element.

Constructor & Destructor Documentation

◆ Element()

NIMBLE_FUNCTION nimble::Element::Element ( )
default

Default constructor.

◆ ~Element()

virtual NIMBLE_FUNCTION nimble::Element::~Element ( )
virtualdefault

Default virtual destructor.

Member Function Documentation

◆ ComputeCharacteristicLength()

virtual double nimble::Element::ComputeCharacteristicLength ( const double * node_coords)
pure virtual

Virtual function to compute the characteristic length.

Parameters
[in]node_coordsPointer to array of nodal coordinates
Returns
Characteristic length

Implemented in nimble::HexElement.

◆ ComputeDeformationGradients()

virtual void nimble::Element::ComputeDeformationGradients ( const double * node_reference_coords,
const double * node_current_coords,
double * deformation_gradients ) const
pure virtual

Virtual function to compute the deformation gradients.

Parameters
[in]node_reference_coordsPointer to array of reference nodal coordinates
[in]node_current_coordsPointer to array of current nodal coordinates
[out]deformation_gradientsPointer to array of deformation gradients

Implemented in nimble::HexElement.

◆ ComputeLumpedMass()

virtual void nimble::Element::ComputeLumpedMass ( double density,
const double * node_reference_coords,
double * lumped_mass ) const
pure virtual

Virtual function to compute the lumped mass.

Parameters
[in]densityMaterial density
[in]node_reference_coordsPointer to array of nodal reference coordinates
[out]lumped_massPointer to array of nodal lumped mass value

Implemented in nimble::HexElement.

◆ ComputeNodalForces()

virtual void nimble::Element::ComputeNodalForces ( const double * node_current_coords,
const double * int_pt_stresses,
double * node_forces )
pure virtual

Virtual function to compute the nodal forces.

Parameters
[in]node_current_coordsPointer to array of current nodal coordinates
[in]int_pt_stressesPointer to array of stresses at integration points
[out]node_forcesPointer to array of forces

Implemented in nimble::HexElement.

◆ ComputeTangent()

virtual void nimble::Element::ComputeTangent ( const double * node_reference_coords,
const double * material_tangent,
double * tangent )
pure virtual

Virtual function to compute the tangent.

Parameters
[in]node_current_coordsPointer to array of current nodal coordinates
[in]material_tangentPointer to array of material tangent
[out]tangentPointer to array of tangent

Implemented in nimble::HexElement.

◆ ComputeVolumeAverage()

virtual void nimble::Element::ComputeVolumeAverage ( const double * node_current_coords,
int num_quantities,
const double * int_pt_quantities,
double & volume,
double * volume_averaged_quantity ) const
pure virtual

Implemented in nimble::HexElement.

◆ Dim()

virtual int nimble::Element::Dim ( ) const
pure virtual

Virtual function returning the spatial dimension.

Returns
Spatial dimension

Implemented in nimble::HexElement.

◆ NumIntegrationPointsPerElement()

virtual int nimble::Element::NumIntegrationPointsPerElement ( ) const
pure virtual

Virtual function returning the number of integration points per element.

Returns
Number of integration points per element

Implemented in nimble::HexElement.

◆ NumNodesPerElement()

virtual int nimble::Element::NumNodesPerElement ( ) const
pure virtual

Virtual function returning the number of nodes in the element.

Returns
Number of nodes in the element

Implemented in nimble::HexElement.

Member Data Documentation

◆ K_F_XX_

const int nimble::Element::K_F_XX_ = 0
protected

◆ K_F_XY_

const int nimble::Element::K_F_XY_ = 3
protected

◆ K_F_XZ_

const int nimble::Element::K_F_XZ_ = 8
protected

◆ K_F_YX_

const int nimble::Element::K_F_YX_ = 6
protected

◆ K_F_YY_

const int nimble::Element::K_F_YY_ = 1
protected

◆ K_F_YZ_

const int nimble::Element::K_F_YZ_ = 4
protected

◆ K_F_ZX_

const int nimble::Element::K_F_ZX_ = 5
protected

◆ K_F_ZY_

const int nimble::Element::K_F_ZY_ = 7
protected

◆ K_F_ZZ_

const int nimble::Element::K_F_ZZ_ = 2
protected

◆ K_S_XX_

const int nimble::Element::K_S_XX_ = 0
protected

◆ K_S_XY_

const int nimble::Element::K_S_XY_ = 3
protected

◆ K_S_XZ_

const int nimble::Element::K_S_XZ_ = 5
protected

◆ K_S_YX_

const int nimble::Element::K_S_YX_ = 3
protected

◆ K_S_YY_

const int nimble::Element::K_S_YY_ = 1
protected

◆ K_S_YZ_

const int nimble::Element::K_S_YZ_ = 4
protected

◆ K_S_ZX_

const int nimble::Element::K_S_ZX_ = 5
protected

◆ K_S_ZY_

const int nimble::Element::K_S_ZY_ = 4
protected

◆ K_S_ZZ_

const int nimble::Element::K_S_ZZ_ = 2
protected

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