Class for creating a node in space that handles coordinates, state variables, free and total degrees-of-freedom numbering. More...
#include <Node.hpp>
Public Member Functions | |
Node (unsigned int numberDofs, Eigen::VectorXd coordinates, bool isFixed) | |
Creates a Node in a finite element Mesh. More... | |
~Node () | |
Destroys this Node object. More... | |
bool | IsFixed () const |
Whether the node is fixed or free. More... | |
void | InitialState () |
Set all node variables to be zero. More... | |
void | SetMass (Eigen::VectorXd &mass) |
Set the node's mass at each degree of freedom. More... | |
void | SetAsFixed (bool isFixed) |
Set the node's restrain condition. More... | |
void | SetReaction (Eigen::VectorXd &reaction) |
Sets the current reaction force of this node. More... | |
void | SetProgressiveForces (Eigen::VectorXd &force) |
Sets the external force from previous analysis. More... | |
void | SetCoordinates (Eigen::VectorXd &coordinates) |
Set the node's position in a finite element Mesh. More... | |
void | SetFreeDegreeOfFreedom (std::vector< int > &freeDOF) |
Set the free degree of freedom number list for this Node. More... | |
void | SetTotalDegreeOfFreedom (std::vector< int > &totalDOF) |
Set the global degree of freedom number list for this Node. More... | |
void | SetDisplacements (Eigen::VectorXd &Uo) |
Sets the vector of displacement associated with this Node. More... | |
void | SetVelocities (Eigen::VectorXd &Vo) |
Sets the current velocity state associated with this Node. More... | |
void | SetAccelerations (Eigen::VectorXd &Ao) |
Sets the current acceleration state associated with this Node. More... | |
void | SetIncrementalDisplacements (Eigen::VectorXd &dU) |
Sets the current incremental displacement associated with this Node. More... | |
void | SetDomainReductionMotion (Eigen::MatrixXd &Uo) |
Sets the domain-reduction nodal displacements. More... | |
void | SetPMLVector (Eigen::VectorXd &Ub) |
Sets the vector of absorbent integrated history values. More... | |
void | SetSupportMotion (unsigned int k, std::vector< double > &Uo) |
Sets the displacements support motion associated with this Node. More... | |
void | DelSupportMotion () |
Remove the displacements support motion associated with this Node. More... | |
Eigen::VectorXd | GetMass () const |
Gets the node's mass as a vector. More... | |
Eigen::VectorXd | GetReaction () const |
Gets the node reaction force. More... | |
const Eigen::VectorXd & | GetCoordinates () const |
Gets the node's coordinate as a vector. More... | |
const Eigen::VectorXd & | GetDisplacements () const |
Gets the current displacement state of this node. More... | |
const Eigen::VectorXd & | GetVelocities () const |
Gets the current velocity state of this node. More... | |
const Eigen::VectorXd & | GetAccelerations () const |
Gets the current acceleration state of this node. More... | |
Eigen::VectorXd | GetInertialForces () const |
Returns the inertial forces associated to this node. More... | |
const Eigen::VectorXd & | GetProgressiveForces () const |
Returns the external force from previous analysis. More... | |
const Eigen::VectorXd & | GetPMLVector () const |
Gets the current PML history vector of this node. More... | |
const Eigen::VectorXd & | GetIncrementalDisplacements () const |
Gets the current incremental displacement of this node. More... | |
Eigen::VectorXd | GetDomainReductionMotion (unsigned int k) const |
Gets the current domain reduction displacements, velocities and accelerations. More... | |
Eigen::VectorXd | GetSupportMotion (unsigned int k) |
Gets the nodal support motion displacement of this node. More... | |
unsigned int | GetNumberOfSupportMotion () |
Gets the number of degree-of-freedom with support motion in this node. More... | |
unsigned int | GetNumberOfDegreeOfFreedom () const |
Gets the number of degree-of-freedom of this node. More... | |
const std::vector< int > & | GetFreeDegreeOfFreedom () const |
Gets the node's restrained degree of freedom as a vector. More... | |
const std::vector< int > & | GetTotalDegreeOfFreedom () const |
Gets the node's total degree of freedom as a vector. More... | |
Private Attributes | |
bool | Fixed |
unsigned int | NumberOfDegreeOfFreedom |
Number of Degree of Freedom: More... | |
Eigen::VectorXd | Coordinates |
The location of this node within the Mesh.. More... | |
Eigen::VectorXd | Displacements |
The current displacement vector of this Node. More... | |
Eigen::VectorXd | Velocities |
The current velocity vector of this Node. More... | |
Eigen::VectorXd | Accelerations |
The current acceleration vectors of this Node. More... | |
Eigen::VectorXd | IncrementalDisplacements |
The current incremental displacement vector of Node. More... | |
Eigen::MatrixXd | DomainReductionMotion |
The imposed domain-reduction nodal displacements, velocity and acceleration. More... | |
Eigen::VectorXd | Mass |
The applied mass of this Node. More... | |
Eigen::VectorXd | Reaction |
The reaction forces of this node. More... | |
Eigen::VectorXd | CumulatedForce |
The external force from previous analysis. More... | |
Eigen::VectorXd | PMLIntegratedVector |
The 3D perfectly-matched history vector. More... | |
std::vector< int > | FreeDegreeOfFreedom |
The free-degree-of-freedom list. More... | |
std::vector< int > | TotalDegreeOfFreedom |
The total-degree-of-freedom list. More... | |
std::map< unsigned int, std::vector< double > > | SupportMotion |
The imposed nodal support motion displacements. More... | |
Class for creating a node in space that handles coordinates, state variables, free and total degrees-of-freedom numbering.
Node::Node | ( | unsigned int | numberDofs, |
Eigen::VectorXd | coordinates, | ||
bool | isFixed | ||
) |
Creates a Node in a finite element Mesh.
numberDofs | Number of degree-of-freedom for this node. |
coordinates | Matrix that specifies the coordinates of this node. |
isFixed | Whether the node is fixed or free. |
isAbsorbent | Whether the node is belongs is absorbent (PML 3D). |
Node::~Node | ( | ) |
Destroys this Node object.
void Node::DelSupportMotion | ( | ) |
Remove the displacements support motion associated with this Node.
const Eigen::VectorXd& Node::GetAccelerations | ( | ) | const |
Gets the current acceleration state of this node.
const Eigen::VectorXd& Node::GetCoordinates | ( | ) | const |
Gets the node's coordinate as a vector.
const Eigen::VectorXd& Node::GetDisplacements | ( | ) | const |
Gets the current displacement state of this node.
Eigen::VectorXd Node::GetDomainReductionMotion | ( | unsigned int | k | ) | const |
Gets the current domain reduction displacements, velocities and accelerations.
k | Time step at which the domain reduction information is retrieved. |
const std::vector<int>& Node::GetFreeDegreeOfFreedom | ( | ) | const |
Gets the node's restrained degree of freedom as a vector.
const Eigen::VectorXd& Node::GetIncrementalDisplacements | ( | ) | const |
Gets the current incremental displacement of this node.
Eigen::VectorXd Node::GetInertialForces | ( | ) | const |
Returns the inertial forces associated to this node.
Eigen::VectorXd Node::GetMass | ( | ) | const |
Gets the node's mass as a vector.
unsigned int Node::GetNumberOfDegreeOfFreedom | ( | ) | const |
Gets the number of degree-of-freedom of this node.
unsigned int Node::GetNumberOfSupportMotion | ( | ) |
Gets the number of degree-of-freedom with support motion in this node.
const Eigen::VectorXd& Node::GetPMLVector | ( | ) | const |
Gets the current PML history vector of this node.
const Eigen::VectorXd& Node::GetProgressiveForces | ( | ) | const |
Returns the external force from previous analysis.
Eigen::VectorXd Node::GetReaction | ( | ) | const |
Gets the node reaction force.
Eigen::VectorXd Node::GetSupportMotion | ( | unsigned int | k | ) |
Gets the nodal support motion displacement of this node.
k | Degree-of-freedom at which the displacement supports are retrieved. |
const std::vector<int>& Node::GetTotalDegreeOfFreedom | ( | ) | const |
Gets the node's total degree of freedom as a vector.
const Eigen::VectorXd& Node::GetVelocities | ( | ) | const |
Gets the current velocity state of this node.
void Node::InitialState | ( | ) |
Set all node variables to be zero.
bool Node::IsFixed | ( | ) | const |
Whether the node is fixed or free.
void Node::SetAccelerations | ( | Eigen::VectorXd & | Ao | ) |
Sets the current acceleration state associated with this Node.
Ao | Vector of accelertions. |
void Node::SetAsFixed | ( | bool | isFixed | ) |
Set the node's restrain condition.
isFixed | whether the node is fixed or free. |
void Node::SetCoordinates | ( | Eigen::VectorXd & | coordinates | ) |
Set the node's position in a finite element Mesh.
coordinates | Vector of coordinates or position. |
void Node::SetDisplacements | ( | Eigen::VectorXd & | Uo | ) |
Sets the vector of displacement associated with this Node.
Uo | Vector of displacement. |
void Node::SetDomainReductionMotion | ( | Eigen::MatrixXd & | Uo | ) |
Sets the domain-reduction nodal displacements.
Uo | Matrix of displacements, velocities, and accelerations. |
void Node::SetFreeDegreeOfFreedom | ( | std::vector< int > & | freeDOF | ) |
Set the free degree of freedom number list for this Node.
freeDOF | Vector of integers with the 'free' degree-of-freedom numbering. |
void Node::SetIncrementalDisplacements | ( | Eigen::VectorXd & | dU | ) |
Sets the current incremental displacement associated with this Node.
dU | Vector of incremental displacements. |
void Node::SetMass | ( | Eigen::VectorXd & | mass | ) |
Set the node's mass at each degree of freedom.
mass | Vector of masses. |
void Node::SetPMLVector | ( | Eigen::VectorXd & | Ub | ) |
Sets the vector of absorbent integrated history values.
Ub | Vector of integrated (states) history values. |
void Node::SetProgressiveForces | ( | Eigen::VectorXd & | force | ) |
Sets the external force from previous analysis.
force | Vector of forces. |
void Node::SetReaction | ( | Eigen::VectorXd & | reaction | ) |
Sets the current reaction force of this node.
mass | Vector of masses. |
void Node::SetSupportMotion | ( | unsigned int | k, |
std::vector< double > & | Uo | ||
) |
Sets the displacements support motion associated with this Node.
k | Integer that represents the degree-of-freedom where the displacement is imposed. |
Uo | Vector of displacements in time. |
void Node::SetTotalDegreeOfFreedom | ( | std::vector< int > & | totalDOF | ) |
Set the global degree of freedom number list for this Node.
totalDOF | Vector of integers with the 'total' degree-of-freedom numbering. |
void Node::SetVelocities | ( | Eigen::VectorXd & | Vo | ) |
Sets the current velocity state associated with this Node.
Vo | Vector of velocities. |
|
private |
The current acceleration vectors of this Node.
|
private |
The location of this node within the Mesh..
|
private |
The external force from previous analysis.
|
private |
The current displacement vector of this Node.
|
private |
The imposed domain-reduction nodal displacements, velocity and acceleration.
|
private |
|
private |
The free-degree-of-freedom list.
|
private |
The current incremental displacement vector of Node.
|
private |
The applied mass of this Node.
|
private |
Number of Degree of Freedom:
|
private |
The 3D perfectly-matched history vector.
|
private |
The reaction forces of this node.
|
private |
The imposed nodal support motion displacements.
|
private |
The total-degree-of-freedom list.
|
private |
The current velocity vector of this Node.