MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
|
Is a type of Body created by the extrusion of a 2D polygon. More...
#include <BodyPolygon.h>
Public Member Functions | |
BodyPolygon () | |
Default constructor. | |
virtual | ~BodyPolygon () |
Default destruction. | |
void | setPoints (vector< Vector3d > polygon_points) |
Configure the geometrical points of the polygon. | |
virtual void | setMaterialId (int material_id) |
Configure the material id. | |
virtual int | getMaterialId () const |
Return the material identification. | |
virtual void | create (Mesh &mesh, Material *material) |
Create a body in space using a polygon in 2D. | |
void | setExtrudeDirection (string extrude_direction) |
Configures the extrude direction. | |
void | setExtrudeDisplacement (double extrude_displacement) |
Configures the extrude displacement. | |
void | setDiscretizationLength (double distretization_length) |
Configures the discretization parameter. | |
![]() | |
Body () | |
Default constructor. | |
virtual | ~Body () |
Default destructor. | |
int | getId () const |
Return the body identification. | |
Vector3d | getInitialVelocity () const |
Return the initial velocity of the body. | |
vector< Particle * > * | getParticles () |
Return the particles forming the body. | |
void | setId (int body_id) |
Configure the id of the body. | |
void | setInitialVelocity (Vector3d initial_velocity) |
Configure the initial velocity of the body. | |
void | setParticles (const vector< Particle * > &particle_list) |
Configure the particles in the body. | |
void | insertParticles (const vector< Particle * > &particle_list) |
Add particles to the current particle list. | |
Private Attributes | |
int | materialId |
material identification | |
vector< Vector3d > | polygonPoints |
geometrical definition of the polygon | |
string | extrudeDirection |
extrude direction | |
double | extrudeDisplacement |
extrude displacement | |
double | distretizationLength |
length of the local mesh used to create the body | |
Additional Inherited Members | |
![]() | |
int | id |
body identification | |
Vector3d | initial_velocity |
initial velocity of the body | |
vector< Particle * > | particles |
material points forming the body | |
Is a type of Body created by the extrusion of a 2D polygon.
This class allows to create a 3D body in the space by extrusion of a 2D polygon.
The extrusion is performed according to a direction and to a displacement. The direction of the extrusion is represented by the extrudeDirection
attribute. The displacement of the extrusion is represented by the extrudeDisplacement
attribute. This body is fill up with particles according to a discretization parameter distretizationLength
.
The extrude direction is the axis by with the polygon will be extruded.
Extrusion in x Extrusion in y Extrusion in z
z x y ^ ^ ^ | | | o---> y o---> z o---> x
o : is the axis pointing out of the plane
Is the total displacement of the polygon through the extrusion direction.
When the particles are put in the body an auxiliary grid is used. The discretizationLength
attribute is the dimension of a grid cell.
Once the body was created by extrusion, the material points need to be distributed inside the body. For do that the create method performs this operations:
BodyPolygon::BodyPolygon | ( | ) |
Default constructor.
|
virtual |
Default destruction.
|
inlinevirtual |
|
inline |
Configures the discretization parameter.
[in] | distretization_length | Distretization length |
|
inline |
Configures the extrude direction.
[in] | extrude_direction | Extrude direction can be "y" |
|
inline |
Configures the extrude displacement.
[in] | extrude_displacement | Extrude displacement |
|
inlinevirtual |
|
inline |
Configure the geometrical points of the polygon.
[in] | polygon_points | Geometrical definition of the polygon |
|
private |
length of the local mesh used to create the body
|
private |
extrude direction
|
private |
extrude displacement
|
private |
material identification
|
private |
geometrical definition of the polygon