MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
Loading...
Searching...
No Matches
Shape Class Referenceabstract

Represents the shape functions used in the interpolation process. More...

#include <Shape.h>

Inheritance diagram for Shape:
Collaboration diagram for Shape:

Public Member Functions

 Shape ()
 Default constructor.
 
virtual ~Shape ()
 Default destructor.
 
virtual void update (const Vector3d &particle_position, const Vector3d &nodal_position, const Vector3d &cell_dimension, const Vector3d &particle_size)=0
 Update the shape functions and its gradients.
 
const Vector3d & getShape () const
 Return the shape function values.
 
const Vector3d & getDerivate () const
 Returns the derivates values.
 
void setShape (double sx, double sy, double sz)
 Configure the shape function values.
 
void setDerivate (double gx, double gy, double gz)
 Configure the nodal shape function derivates.
 

Private Member Functions

virtual double computeGradient (double pI_position, double cell_dimension, double lp)=0
 Returns the gradient of the shape function.
 
virtual double computeShape (double pI_position, double cell_dimension, double lp)=0
 Returns the shape function value.
 

Private Attributes

Vector3d shape
 shape function values
 
Vector3d derivate
 shape function gradient values
 

Detailed Description

Represents the shape functions used in the interpolation process.

Constructor & Destructor Documentation

◆ Shape()

Shape::Shape ( )
inline

Default constructor.

◆ ~Shape()

Shape::~Shape ( )
inlinevirtual

Default destructor.

Member Function Documentation

◆ computeGradient()

virtual double Shape::computeGradient ( double pI_position,
double cell_dimension,
double lp )
privatepure virtual

Returns the gradient of the shape function.

Parameters
[in]pI_positionRelative position of the particle \(p\) respect to the node: \(x_p-x_I\)
[in]cell_dimensionCell dimension in the direction
[in]lpHalf current particle size
Returns
The gradient of the shape function: \(dS_{Ip}/di\)

Implemented in ShapeGimp, and ShapeLinear.

◆ computeShape()

virtual double Shape::computeShape ( double pI_position,
double cell_dimension,
double lp )
privatepure virtual

Returns the shape function value.

Parameters
[in]pI_positionRelative position of the particle \(p\) respect to the node: \(x_p-x_I\)
[in]cell_dimensionCell dimension in the direction
[in]lpHalf current particle size
Returns
The shape function value \(S_{Ip}\)

Implemented in ShapeGimp, and ShapeLinear.

◆ getDerivate()

const Vector3d & Shape::getDerivate ( ) const
inline

Returns the derivates values.

Returns
The derivates of the nodal shape function \(dS_{Ip}/dx, dS_{Ip}/dy, dS_{Ip}/dz\)

◆ getShape()

const Vector3d & Shape::getShape ( ) const
inline

Return the shape function values.

Returns
The nodal shape function value \(S_{Ipx}, S_{Ipy}, S_{Ipy}\)

◆ setDerivate()

void Shape::setDerivate ( double gx,
double gy,
double gz )
inline

Configure the nodal shape function derivates.

The nodal derivate shape function values: \(dS_{Ip}/dx, dS_{Ip}/dy, dS_{Ip}/dz\)

Parameters
[in]gxThe nodal derivate shape function value in X
[in]gyThe nodal derivate shape function value in Y
[in]gzThe nodal derivate shape function value in Z

◆ setShape()

void Shape::setShape ( double sx,
double sy,
double sz )
inline

Configure the shape function values.

Nodal shape function values: \(S_{Ipx}, S_{Ipy}, S_{Ipy}\)

Parameters
[in]sxThe nodal shape function value in X
[in]syThe nodal shape function value in Y
[in]szThe nodal shape function value in Z

◆ update()

virtual void Shape::update ( const Vector3d & particle_position,
const Vector3d & nodal_position,
const Vector3d & cell_dimension,
const Vector3d & particle_size )
pure virtual

Update the shape functions and its gradients.

Parameters
[in]particle_positionParticle position
[in]nodal_positionNodal position
[in]cell_dimensionCell dimension
[in]particle_sizeParticle size

Implemented in ShapeGimp, and ShapeLinear.

Member Data Documentation

◆ derivate

Vector3d Shape::derivate
private

shape function gradient values

◆ shape

Vector3d Shape::shape
private

shape function values


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