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

Mesh boundary nodes. More...

#include <Boundary.h>

Collaboration diagram for Boundary:

Classes

struct  planeBoundary
 Represents the nodes and the type of restrictions. More...
 

Public Types

enum  BoundaryType { FREE , FIXED , SLIDING , EARTHQUAKE }
 Determines the type of restrictions to be imposed to the mesh. More...
 
enum  BoundaryPlane {
  X0 , Y0 , Z0 , Xn ,
  Yn , Zn
}
 Planes at the mesh boundary. More...
 

Public Member Functions

 Boundary ()
 Default constructor.
 
virtual ~Boundary ()
 Default destructor.
 
const planeBoundarygetPlaneX0 () const
 Return the nodes lower than the plane X0, including ghosts.
 
const planeBoundarygetPlaneY0 () const
 Return the nodes lower than the plane Y0, including ghosts.
 
const planeBoundarygetPlaneZ0 () const
 Return the nodes lower than the plane Z0, including ghosts.
 
const planeBoundarygetPlaneXn () const
 Return the nodes lower than the plane Xn, including ghosts.
 
const planeBoundarygetPlaneYn () const
 Return the nodes lower than the plane Yn, including ghosts.
 
const planeBoundarygetPlaneZn () const
 Return the nodes lower than the plane Zn, including ghosts.
 
void setNodesPlaneX0 (const vector< int > &nodes_id)
 Configure the nodes lower than the plane X0, including ghosts.
 
void setNodesPlaneY0 (const vector< int > &nodes_id)
 Configure the nodes lower than the plane Y0, including ghosts.
 
void setNodesPlaneZ0 (const vector< int > &nodes_id)
 Configure the nodes lower than the plane Z0, including ghosts.
 
void setNodesPlaneXn (const vector< int > &nodes_id)
 Configure the nodes lower than the plane Xn, including ghosts.
 
void setNodesPlaneYn (const vector< int > &nodes_id)
 Configure the nodes lower than the plane Yn, including ghosts.
 
void setNodesPlaneZn (const vector< int > &nodes_id)
 Configure the nodes lower than the plane Zn, including ghosts.
 
void setRestrictions (Boundary::BoundaryType restriction)
 Configure the restrictions of the boundary nodes.
 
void setRestrictionsFluid (Boundary::BoundaryType restriction)
 Configure the restrictions of the boundary nodes.
 
void setRestrictions (Boundary::BoundaryPlane plane, Boundary::BoundaryType restriction)
 Configure the restrictions of the boundary nodes by plane.
 
void setRestrictionsFluid (Boundary::BoundaryPlane plane, Boundary::BoundaryType restriction)
 Configure the restrictions of the boundary nodes by plane.
 

Private Attributes

Boundary::planeBoundary planeX0
 boundary nodes at plane X0
 
Boundary::planeBoundary planeY0
 boundary nodes at plane Y0
 
Boundary::planeBoundary planeZ0
 boundary nodes at plane Z0
 
Boundary::planeBoundary planeXn
 boundary nodes at plane Xn
 
Boundary::planeBoundary planeYn
 boundary nodes at plane Yn
 
Boundary::planeBoundary planeZn
 boundary nodes at plane Zn
 

Detailed Description

Mesh boundary nodes.

This class represents the mesh boundaries for setting up the boundary conditions of the numerical problem in terms of displacement, velocity and acceleration. In a mechanical numerical model the Lagrangian boundary conditions, like external loads, are setting up into the particles representing the physical domain boundary, and during the nodal integration the mesh boundaries conditions should be setting up on the mesh boundaries, in particular this class is created to apply this nodal BCs.

For a regular mesh are defined two planes in each direction: X0-Xn, Y0-Yn, Z0-Zn. In which the subscript 0 represents the minor coordinate in the direction and n the mayor coordinate of the plane in that direction.

There are several types of BCs. In fixed boundary condition the node is fixed in all direction during the simulation. In sliding boundary condition the node only is permited to move only in perpendicular direction of the corresponding plane. In free boundary condition the node is free to move in all directions. In earthquake boundary condition allow setting nodal acceleration and velocities in time for introduce a seismic record in the model.

Definition of the planes for setting boundary conditions

Boundaries of the Mesh
+----------+
|\ \
| \ Plane Zn \
z | \ \
| Plane Y0 ------> +----------+ <------ Plane Yn
| | | |
+---- y + | |
\ \ | Plane Xn |
\ \ | |
x \| |
+----------+
Plane X0 : Plane which normal points to the negative direction of axis X
Plane Xn : Plane which normal points to the positive direction of axis X
@ X0
Definition Boundary.h:57
@ Xn
Definition Boundary.h:57
@ Y0
Definition Boundary.h:57
@ Yn
Definition Boundary.h:57
Class representing a rectangular grid mesh.
Definition Mesh.h:29

Note: If any boundary condition is defined in the input file, sliding boundary condition is chosen, by default, for all planes.

Member Enumeration Documentation

◆ BoundaryPlane

Planes at the mesh boundary.

Enumerator
X0 
Y0 
Z0 
Xn 
Yn 
Zn 

◆ BoundaryType

Determines the type of restrictions to be imposed to the mesh.

Enumerator
FREE 
FIXED 
SLIDING 
EARTHQUAKE 

Constructor & Destructor Documentation

◆ Boundary()

Boundary::Boundary ( )
inline

Default constructor.

◆ ~Boundary()

Boundary::~Boundary ( )
inlinevirtual

Default destructor.

Member Function Documentation

◆ getPlaneX0()

const planeBoundary * Boundary::getPlaneX0 ( ) const
inline

Return the nodes lower than the plane X0, including ghosts.

Returns
A pointer to planeBoundary in X0

◆ getPlaneXn()

const planeBoundary * Boundary::getPlaneXn ( ) const
inline

Return the nodes lower than the plane Xn, including ghosts.

Returns
A pointer to planeBoundary Xn

◆ getPlaneY0()

const planeBoundary * Boundary::getPlaneY0 ( ) const
inline

Return the nodes lower than the plane Y0, including ghosts.

Returns
A pointer to planeBoundary in Y0

◆ getPlaneYn()

const planeBoundary * Boundary::getPlaneYn ( ) const
inline

Return the nodes lower than the plane Yn, including ghosts.

Returns
A pointer to planeBoundary Yn

◆ getPlaneZ0()

const planeBoundary * Boundary::getPlaneZ0 ( ) const
inline

Return the nodes lower than the plane Z0, including ghosts.

Returns
A pointer to planeBoundary in Z0

◆ getPlaneZn()

const planeBoundary * Boundary::getPlaneZn ( ) const
inline

Return the nodes lower than the plane Zn, including ghosts.

Returns
A pointer to planeBoundary Zn

◆ setNodesPlaneX0()

void Boundary::setNodesPlaneX0 ( const vector< int > & nodes_id)
inline

Configure the nodes lower than the plane X0, including ghosts.

Parameters
[in]nodes_idA vector with nodes identifications

◆ setNodesPlaneXn()

void Boundary::setNodesPlaneXn ( const vector< int > & nodes_id)
inline

Configure the nodes lower than the plane Xn, including ghosts.

Parameters
[in]nodes_idA vector with nodes identifications

◆ setNodesPlaneY0()

void Boundary::setNodesPlaneY0 ( const vector< int > & nodes_id)
inline

Configure the nodes lower than the plane Y0, including ghosts.

Parameters
[in]nodes_idA vector with nodes identifications

◆ setNodesPlaneYn()

void Boundary::setNodesPlaneYn ( const vector< int > & nodes_id)
inline

Configure the nodes lower than the plane Yn, including ghosts.

Parameters
[in]nodes_idA vector with nodes identifications

◆ setNodesPlaneZ0()

void Boundary::setNodesPlaneZ0 ( const vector< int > & nodes_id)
inline

Configure the nodes lower than the plane Z0, including ghosts.

Parameters
[in]nodes_idA vector with nodes identifications

◆ setNodesPlaneZn()

void Boundary::setNodesPlaneZn ( const vector< int > & nodes_id)
inline

Configure the nodes lower than the plane Zn, including ghosts.

Parameters
[in]nodes_idA vector with nodes identifications

◆ setRestrictions() [1/2]

void Boundary::setRestrictions ( Boundary::BoundaryPlane plane,
Boundary::BoundaryType restriction )
inline

Configure the restrictions of the boundary nodes by plane.

Parameters
[in]restrictionType of restriction Boundary::BoundaryType
[in]planePlane to be applied the restriction

◆ setRestrictions() [2/2]

void Boundary::setRestrictions ( Boundary::BoundaryType restriction)
inline

Configure the restrictions of the boundary nodes.

Parameters
[in]restrictionType of restriction Boundary::BoundaryType

◆ setRestrictionsFluid() [1/2]

void Boundary::setRestrictionsFluid ( Boundary::BoundaryPlane plane,
Boundary::BoundaryType restriction )
inline

Configure the restrictions of the boundary nodes by plane.

Parameters
[in]restrictionType of restriction Boundary::BoundaryType
[in]planePlane to be applied the restriction

◆ setRestrictionsFluid() [2/2]

void Boundary::setRestrictionsFluid ( Boundary::BoundaryType restriction)
inline

Configure the restrictions of the boundary nodes.

Parameters
[in]restrictionType of restriction Boundary::BoundaryType

Member Data Documentation

◆ planeX0

Boundary::planeBoundary Boundary::planeX0
private

boundary nodes at plane X0

◆ planeXn

Boundary::planeBoundary Boundary::planeXn
private

boundary nodes at plane Xn

◆ planeY0

Boundary::planeBoundary Boundary::planeY0
private

boundary nodes at plane Y0

◆ planeYn

Boundary::planeBoundary Boundary::planeYn
private

boundary nodes at plane Yn

◆ planeZ0

Boundary::planeBoundary Boundary::planeZ0
private

boundary nodes at plane Z0

◆ planeZn

Boundary::planeBoundary Boundary::planeZn
private

boundary nodes at plane Zn


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