37 #include <Eigen/Dense> 56 Node(
unsigned int numberDofs, Eigen::VectorXd coordinates,
bool isFixed);
72 void SetMass(Eigen::VectorXd &mass);
154 Eigen::VectorXd
GetMass()
const;
Eigen::VectorXd GetReaction() const
Gets the node reaction force.
void SetAccelerations(Eigen::VectorXd &Ao)
Sets the current acceleration state associated with this Node.
void SetProgressiveForces(Eigen::VectorXd &force)
Sets the external force from previous analysis.
const Eigen::VectorXd & GetPMLVector() const
Gets the current PML history vector of this node.
void SetIncrementalDisplacements(Eigen::VectorXd &dU)
Sets the current incremental displacement associated with this Node.
bool IsFixed() const
Whether the node is fixed or free.
void SetFreeDegreeOfFreedom(std::vector< int > &freeDOF)
Set the free degree of freedom number list for this Node.
unsigned int GetNumberOfDegreeOfFreedom() const
Gets the number of degree-of-freedom of this node.
Eigen::VectorXd CumulatedForce
The external force from previous analysis.
Definition: Node.hpp:269
Class for creating a node in space that handles coordinates, state variables, free and total degrees-...
Definition: Node.hpp:46
void SetCoordinates(Eigen::VectorXd &coordinates)
Set the node's position in a finite element Mesh.
const Eigen::VectorXd & GetIncrementalDisplacements() const
Gets the current incremental displacement of this node.
void SetSupportMotion(unsigned int k, std::vector< double > &Uo)
Sets the displacements support motion associated with this Node.
Eigen::VectorXd Velocities
The current velocity vector of this Node.
Definition: Node.hpp:251
Eigen::VectorXd GetInertialForces() const
Returns the inertial forces associated to this node.
const std::vector< int > & GetTotalDegreeOfFreedom() const
Gets the node's total degree of freedom as a vector.
void SetVelocities(Eigen::VectorXd &Vo)
Sets the current velocity state associated with this Node.
void SetMass(Eigen::VectorXd &mass)
Set the node's mass at each degree of freedom.
void SetDomainReductionMotion(Eigen::MatrixXd &Uo)
Sets the domain-reduction nodal displacements.
Eigen::VectorXd Reaction
The reaction forces of this node.
Definition: Node.hpp:266
const Eigen::VectorXd & GetDisplacements() const
Gets the current displacement state of this node.
std::vector< int > TotalDegreeOfFreedom
The total-degree-of-freedom list.
Definition: Node.hpp:278
Eigen::VectorXd Coordinates
The location of this node within the Mesh..
Definition: Node.hpp:245
void SetTotalDegreeOfFreedom(std::vector< int > &totalDOF)
Set the global degree of freedom number list for this Node.
void SetDisplacements(Eigen::VectorXd &Uo)
Sets the vector of displacement associated with this Node.
std::map< unsigned int, std::vector< double > > SupportMotion
The imposed nodal support motion displacements.
Definition: Node.hpp:281
const Eigen::VectorXd & GetAccelerations() const
Gets the current acceleration state of this node.
const Eigen::VectorXd & GetProgressiveForces() const
Returns the external force from previous analysis.
Eigen::MatrixXd DomainReductionMotion
The imposed domain-reduction nodal displacements, velocity and acceleration.
Definition: Node.hpp:260
Eigen::VectorXd GetMass() const
Gets the node's mass as a vector.
void SetPMLVector(Eigen::VectorXd &Ub)
Sets the vector of absorbent integrated history values.
void SetReaction(Eigen::VectorXd &reaction)
Sets the current reaction force of this node.
Eigen::VectorXd PMLIntegratedVector
The 3D perfectly-matched history vector.
Definition: Node.hpp:272
Node(unsigned int numberDofs, Eigen::VectorXd coordinates, bool isFixed)
Creates a Node in a finite element Mesh.
unsigned int GetNumberOfSupportMotion()
Gets the number of degree-of-freedom with support motion in this node.
const Eigen::VectorXd & GetVelocities() const
Gets the current velocity state of this node.
~Node()
Destroys this Node object.
std::vector< int > FreeDegreeOfFreedom
The free-degree-of-freedom list.
Definition: Node.hpp:275
void InitialState()
Set all node variables to be zero.
Eigen::VectorXd GetDomainReductionMotion(unsigned int k) const
Gets the current domain reduction displacements, velocities and accelerations.
Eigen::VectorXd Mass
The applied mass of this Node.
Definition: Node.hpp:263
void SetAsFixed(bool isFixed)
Set the node's restrain condition.
const std::vector< int > & GetFreeDegreeOfFreedom() const
Gets the node's restrained degree of freedom as a vector.
Eigen::VectorXd IncrementalDisplacements
The current incremental displacement vector of Node.
Definition: Node.hpp:257
Eigen::VectorXd GetSupportMotion(unsigned int k)
Gets the nodal support motion displacement of this node.
void DelSupportMotion()
Remove the displacements support motion associated with this Node.
Eigen::VectorXd Accelerations
The current acceleration vectors of this Node.
Definition: Node.hpp:254
Eigen::VectorXd Displacements
The current displacement vector of this Node.
Definition: Node.hpp:248
const Eigen::VectorXd & GetCoordinates() const
Gets the node's coordinate as a vector.
unsigned int NumberOfDegreeOfFreedom
Number of Degree of Freedom:
Definition: Node.hpp:242
bool Fixed
Definition: Node.hpp:239