NetDEM v1.0
Loading...
Searching...
No Matches
netdem::PeriDigmBoundaryCondition Class Reference

A class that represents a boundary condition for Peridigm. More...

#include <peridigm_boundary_condition.hpp>

Public Types

enum  Type { Prescribed_Displacement , Body_Force }
 An enumeration that lists the types of boundary conditions. More...
 

Public Member Functions

void InsertNode (int node_set_id)
 Adds a node to the set of nodes that are subject to the boundary condition.
 
void SetActivatedDimensions (bool x, bool y, bool z)
 Sets the dimensions that are activated by the boundary condition.
 
void SetByDisplacementRate (double x, double y, double z)
 Sets the boundary condition by specifying the rate of displacement.
 
void SetByUltimateDisplacement (double x, double y, double z, double t)
 Sets the boundary condition by specifying the ultimate displacement.
 
void SetByLoadingRate (double x, double y, double z)
 Sets the boundary condition by specifying the rate of loading.
 
void SetByUltimateLoading (double x, double y, double z, double t)
 Sets the boundary condition by specifying the ultimate loading.
 
void WriteInputFile (std::ostream &os, int node_set_id)
 Writes the boundary condition to an input file.
 
void WriteNodeSetFile (std::string const &result_dir, int node_set_id)
 Writes the node set to a directory.
 

Public Attributes

Type type {Type::Prescribed_Displacement}
 The type of the boundary condition.
 
VecXT< int > node_indices
 The indices of the nodes that are subject to the boundary condition.
 
VecNT< bool, 3 > dim_activated {true, true, true}
 A boolean vector that indicates which dimensions are activated by the boundary condition.
 
bool time_depedent {true}
 A boolean flag that indicates whether the boundary condition is time-dependent or not.
 
Vec3d disp_rate {0, 0, 0}
 The rate of displacement if the boundary condition is defined by displacement rate.
 
Vec3d loading_rate {0, 0, 0}
 The rate of loading if the boundary condition is defined by loading rate.
 
Vec3d disp {0, 0, 0}
 The ultimate displacement if the boundary condition is defined by ultimate displacement.
 
Vec3d loading {0, 0, 0}
 The ultimate loading if the boundary condition is defined by ultimate loading.
 
double mech_time {0}
 The mechanical time if the boundary condition is defined by ultimate displacement or ultimate loading.
 

Detailed Description

A class that represents a boundary condition for Peridigm.

This class represents a boundary condition for Peridigm, which can be either a prescribed displacement or a body force. It defines the set of nodes that are subject to the boundary condition, as well as the type and magnitude of the applied load. The boundary condition can also be defined as time-dependent or not.

Member Enumeration Documentation

◆ Type

An enumeration that lists the types of boundary conditions.

Enumerator
Prescribed_Displacement 
Body_Force 

Member Function Documentation

◆ InsertNode()

void PeriDigmBoundaryCondition::InsertNode ( int node_set_id)

Adds a node to the set of nodes that are subject to the boundary condition.

This method adds a node to the set of nodes that are subject to the boundary condition. The node is identified by its index in the discretized domain.

Parameters
node_set_idThe index of the node to add to the set.

◆ SetActivatedDimensions()

void PeriDigmBoundaryCondition::SetActivatedDimensions ( bool x,
bool y,
bool z )

Sets the dimensions that are activated by the boundary condition.

This method sets the dimensions that are activated by the boundary condition. The activated dimensions are specified using boolean flags for x, y, and z axes.

Parameters
xA boolean flag that indicates whether the x axis is activated.
yA boolean flag that indicates whether the y axis is activated.
zA boolean flag that indicates whether the z axis is activated.

◆ SetByDisplacementRate()

void PeriDigmBoundaryCondition::SetByDisplacementRate ( double x,
double y,
double z )

Sets the boundary condition by specifying the rate of displacement.

This method sets the boundary condition by specifying the rate of displacement along the x, y, and z axes. The boundary condition is defined as time-dependent.

Parameters
xThe rate of displacement along the x axis.
yThe rate of displacement along the y axis.
zThe rate of displacement along the z axis.

◆ SetByLoadingRate()

void PeriDigmBoundaryCondition::SetByLoadingRate ( double x,
double y,
double z )

Sets the boundary condition by specifying the rate of loading.

This method sets the boundary condition by specifying the rate of loading along the x, y, and z axes. The boundary condition is defined as time-dependent.

Parameters
xThe rate of loading along the x axis.
yThe rate of loading along the y axis.
zThe rate of loading along the z axis.

◆ SetByUltimateDisplacement()

void PeriDigmBoundaryCondition::SetByUltimateDisplacement ( double x,
double y,
double z,
double t )

Sets the boundary condition by specifying the ultimate displacement.

This method sets the boundary condition by specifying the ultimate displacement along the x, y, and z axes. The boundary condition is defined as not time-dependent.

Parameters
xThe ultimate displacement along the x axis.
yThe ultimate displacement along the y axis.
zThe ultimate displacement along the z axis.
tThe mechanical time associated with the ultimate displacement.

◆ SetByUltimateLoading()

void PeriDigmBoundaryCondition::SetByUltimateLoading ( double x,
double y,
double z,
double t )

Sets the boundary condition by specifying the ultimate loading.

This method sets the boundary condition by specifying the ultimate loading along the x, y, and z axes. The boundary condition is defined as not time-dependent.

Parameters
xThe ultimate loading along the x axis.
yThe ultimate loading along the y axis.
zThe ultimate loading along the z axis.
tThe mechanical time associated with the ultimate loading.

◆ WriteInputFile()

void PeriDigmBoundaryCondition::WriteInputFile ( std::ostream & os,
int node_set_id )

Writes the boundary condition to an input file.

This method writes the boundary condition to an input file. The method first determines whether the boundary condition is defined by prescribed displacement or body force, and then writes the appropriate section of the input file for each activated dimension.

Parameters
osThe output stream to which the input file is written.
node_set_idThe index of the node set associated with the boundary condition.

◆ WriteNodeSetFile()

void PeriDigmBoundaryCondition::WriteNodeSetFile ( std::string const & result_dir,
int node_set_id )

Writes the node set to a directory.

Parameters
result_dirThe directory to which the node set file is written.
node_set_idThe index of the node set associated with the boundary condition.

Member Data Documentation

◆ dim_activated

VecNT<bool, 3> netdem::PeriDigmBoundaryCondition::dim_activated {true, true, true}

A boolean vector that indicates which dimensions are activated by the boundary condition.

◆ disp

Vec3d netdem::PeriDigmBoundaryCondition::disp {0, 0, 0}

The ultimate displacement if the boundary condition is defined by ultimate displacement.

◆ disp_rate

Vec3d netdem::PeriDigmBoundaryCondition::disp_rate {0, 0, 0}

The rate of displacement if the boundary condition is defined by displacement rate.

◆ loading

Vec3d netdem::PeriDigmBoundaryCondition::loading {0, 0, 0}

The ultimate loading if the boundary condition is defined by ultimate loading.

◆ loading_rate

Vec3d netdem::PeriDigmBoundaryCondition::loading_rate {0, 0, 0}

The rate of loading if the boundary condition is defined by loading rate.

◆ mech_time

double netdem::PeriDigmBoundaryCondition::mech_time {0}

The mechanical time if the boundary condition is defined by ultimate displacement or ultimate loading.

◆ node_indices

VecXT<int> netdem::PeriDigmBoundaryCondition::node_indices

The indices of the nodes that are subject to the boundary condition.

◆ time_depedent

bool netdem::PeriDigmBoundaryCondition::time_depedent {true}

A boolean flag that indicates whether the boundary condition is time-dependent or not.

◆ type

Type netdem::PeriDigmBoundaryCondition::type {Type::Prescribed_Displacement}

The type of the boundary condition.


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