suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
Loading...
Searching...
No Matches
Node Class Referencefinal

The Node class holds the number of DoFs, coordinate, displacement, velocity and acceleration. More...

#include <Node.h>

Inheritance diagram for Node:
Collaboration diagram for Node:

Public Types

enum class  DOF : std::uint8_t {
  NONE , U1 , U2 , U3 ,
  UR1 , UR2 , UR3 , FU1 ,
  FU2 , FU3 , FUR1 , FUR2 ,
  FUR3 , RADIAL , AXIAL , RS ,
  RW , DAMAGE , PRESSURE , TEMPERATURE ,
  WARP
}
 

Public Member Functions

 Node (unsigned, vec &&)
 
void initialize (const shared_ptr< DomainBase > &)
 This method should be called after elements are set. Elements will set the minimum number of DoFs for all related nodes.
 
void deinitialize ()
 
void ensure_dof (unsigned, const std::vector< DOF > &)
 
bool validate_dof (const std::vector< DOF > &) const
 
std::vector< uword > get_dof (const std::vector< DOF > &) const
 
void set_original_dof (unsigned &)
 
const uvecget_original_dof () const
 
void set_reordered_dof (const uvec &)
 
const uvecget_reordered_dof () const
 
const vec & get_coordinate () const
 
const vec & get_current_resistance () const
 
const vec & get_current_damping_force () const
 
const vec & get_current_nonviscous_force () const
 
const vec & get_current_inertial_force () const
 
const vec & get_current_displacement () const
 
const vec & get_current_velocity () const
 
const vec & get_current_acceleration () const
 
const vec & get_incre_resistance () const
 
const vec & get_incre_damping_force () const
 
const vec & get_incre_nonviscous_force () const
 
const vec & get_incre_inertial_force () const
 
const vec & get_incre_displacement () const
 
const vec & get_incre_velocity () const
 
const vec & get_incre_acceleration () const
 
const vec & get_trial_resistance () const
 
const vec & get_trial_damping_force () const
 
const vec & get_trial_nonviscous_force () const
 
const vec & get_trial_inertial_force () const
 
const vec & get_trial_displacement () const
 
const vec & get_trial_velocity () const
 
const vec & get_trial_acceleration () const
 
vec get_current_resistance (unsigned) const
 
vec get_current_damping_force (unsigned) const
 
vec get_current_nonviscous_force (unsigned) const
 
vec get_current_inertial_force (unsigned) const
 
vec get_current_displacement (unsigned) const
 
vec get_current_velocity (unsigned) const
 
vec get_current_acceleration (unsigned) const
 
vec get_incre_resistance (unsigned) const
 
vec get_incre_damping_force (unsigned) const
 
vec get_incre_nonviscous_force (unsigned) const
 
vec get_incre_inertial_force (unsigned) const
 
vec get_incre_displacement (unsigned) const
 
vec get_incre_velocity (unsigned) const
 
vec get_incre_acceleration (unsigned) const
 
vec get_trial_resistance (unsigned) const
 
vec get_trial_damping_force (unsigned) const
 
vec get_trial_nonviscous_force (unsigned) const
 
vec get_trial_inertial_force (unsigned) const
 
vec get_trial_displacement (unsigned) const
 
vec get_trial_velocity (unsigned) const
 
vec get_trial_acceleration (unsigned) const
 
vec initial_position (unsigned) const
 
vec current_position (unsigned) const
 
vec trial_position (unsigned) const
 
const vec & update_current_resistance (vec &&)
 
const vec & update_current_damping_force (vec &&)
 
const vec & update_current_nonviscous_force (vec &&)
 
const vec & update_current_inertial_force (vec &&)
 
const vec & update_current_displacement (vec &&)
 
const vec & update_current_velocity (vec &&)
 
const vec & update_current_acceleration (vec &&)
 
const vec & update_incre_resistance (vec &&)
 
const vec & update_incre_damping_force (vec &&)
 
const vec & update_incre_nonviscous_force (vec &&)
 
const vec & update_incre_inertial_force (vec &&)
 
const vec & update_incre_displacement (vec &&)
 
const vec & update_incre_velocity (vec &&)
 
const vec & update_incre_acceleration (vec &&)
 
const vec & update_trial_resistance (vec &&)
 
const vec & update_trial_damping_force (vec &&)
 
const vec & update_trial_nonviscous_force (vec &&)
 
const vec & update_trial_inertial_force (vec &&)
 
const vec & update_trial_displacement (vec &&)
 
const vec & update_trial_velocity (vec &&)
 
const vec & update_trial_acceleration (vec &&)
 
void update_current_status (const vec &)
 
void update_current_status (const vec &, const vec &)
 
void update_current_status (const vec &, const vec &, const vec &)
 
void update_incre_status (const vec &)
 
void update_incre_status (const vec &, const vec &)
 
void update_incre_status (const vec &, const vec &, const vec &)
 
void update_trial_status (const vec &)
 
void update_trial_status (const vec &, const vec &)
 
void update_trial_status (const vec &, const vec &, const vec &)
 
void commit_status ()
 
void reset_status ()
 
void clear_status ()
 
std::vector< vec > record (OutputType) const
 
void print () override
 
- Public Member Functions inherited from UniqueTag
 UniqueTag (const UniqueTag &)=delete
 
 UniqueTag (UniqueTag &&)=delete
 
UniqueTagoperator= (const UniqueTag &)=delete
 
UniqueTagoperator= (UniqueTag &&)=delete
 
 ~UniqueTag () override=default
 
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
- Public Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
Tagoperator= (const Tag &)=delete
 
Tagoperator= (Tag &&)=delete
 
virtual ~Tag ()=default
 
void set_tag (unsigned) const
 
unsigned get_tag () const
 
void enable ()
 
void disable ()
 
void guard ()
 
void unguard ()
 
bool is_active () const
 
bool is_guarded () const
 

Additional Inherited Members

- Protected Member Functions inherited from UniqueTag
 UniqueTag (const UniqueTag &)=delete
 
 UniqueTag (UniqueTag &&)=delete
 
UniqueTagoperator= (const UniqueTag &)=delete
 
UniqueTagoperator= (UniqueTag &&)=delete
 
 ~UniqueTag () override=default
 
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
- Protected Member Functions inherited from Tag
 Tag (unsigned=0)
 
 Tag (const Tag &)=default
 
 Tag (Tag &&) noexcept=default
 
Tagoperator= (const Tag &)=delete
 
Tagoperator= (Tag &&)=delete
 
virtual ~Tag ()=default
 
void set_tag (unsigned) const
 
unsigned get_tag () const
 
void enable ()
 
void disable ()
 
void guard ()
 
void unguard ()
 
bool is_active () const
 
bool is_guarded () const
 
- Protected Attributes inherited from NodeData
unsigned num_dof {0u}
 
vec coordinate
 
uvec original_dof
 
uvec reordered_dof
 
vec current_resistance
 
vec current_damping_force
 
vec current_nonviscous_force
 
vec current_inertial_force
 
vec current_displacement
 
vec current_velocity
 
vec current_acceleration
 
vec incre_resistance
 
vec incre_damping_force
 
vec incre_nonviscous_force
 
vec incre_inertial_force
 
vec incre_displacement
 
vec incre_velocity
 
vec incre_acceleration
 
vec trial_resistance
 
vec trial_damping_force
 
vec trial_nonviscous_force
 
vec trial_inertial_force
 
vec trial_displacement
 
vec trial_velocity
 
vec trial_acceleration
 

Detailed Description

The Node class holds the number of DoFs, coordinate, displacement, velocity and acceleration.

The current/committed, incremental and trial status of displacement, velocity and acceleration are stored. These variables will be the communication bridge(s) between Domain, Workshop and Element objects. That is, Element objects do not directly get information from the Workshop. Instead, Workshop passes information to Node objects through the Domain, Element objects acquire new status from associated Node objects only. In this manner, the relationship between those modules remains simple.

Author
tlc
Date
22/07/2017
Version
0.2.0

Member Enumeration Documentation

◆ DOF

enum class Node::DOF : std::uint8_t
strong
Enumerator
NONE 
U1 
U2 
U3 
UR1 
UR2 
UR3 
FU1 
FU2 
FU3 
FUR1 
FUR2 
FUR3 
RADIAL 
AXIAL 
RS 
RW 
DAMAGE 
PRESSURE 
TEMPERATURE 
WARP 

Constructor & Destructor Documentation

◆ Node()

Node::Node ( unsigned  T,
vec &&  C 
)

Member Function Documentation

◆ clear_status()

void Node::clear_status ( )

◆ commit_status()

void Node::commit_status ( )

◆ current_position()

vec Node::current_position ( unsigned  dim) const

◆ deinitialize()

void Node::deinitialize ( )

◆ ensure_dof()

void Node::ensure_dof ( unsigned  num_in,
const std::vector< DOF > &  dof_in 
)
Here is the call graph for this function:

◆ get_coordinate()

const vec & Node::get_coordinate ( ) const
Here is the caller graph for this function:

◆ get_current_acceleration() [1/2]

const vec & Node::get_current_acceleration ( ) const

◆ get_current_acceleration() [2/2]

vec Node::get_current_acceleration ( unsigned  dim) const

◆ get_current_damping_force() [1/2]

const vec & Node::get_current_damping_force ( ) const

◆ get_current_damping_force() [2/2]

vec Node::get_current_damping_force ( unsigned  dim) const

◆ get_current_displacement() [1/2]

const vec & Node::get_current_displacement ( ) const

◆ get_current_displacement() [2/2]

vec Node::get_current_displacement ( unsigned  dim) const

◆ get_current_inertial_force() [1/2]

const vec & Node::get_current_inertial_force ( ) const

◆ get_current_inertial_force() [2/2]

vec Node::get_current_inertial_force ( unsigned  dim) const

◆ get_current_nonviscous_force() [1/2]

const vec & Node::get_current_nonviscous_force ( ) const

◆ get_current_nonviscous_force() [2/2]

vec Node::get_current_nonviscous_force ( unsigned  dim) const

◆ get_current_resistance() [1/2]

const vec & Node::get_current_resistance ( ) const

◆ get_current_resistance() [2/2]

vec Node::get_current_resistance ( unsigned  dim) const

◆ get_current_velocity() [1/2]

const vec & Node::get_current_velocity ( ) const

◆ get_current_velocity() [2/2]

vec Node::get_current_velocity ( unsigned  dim) const

◆ get_dof()

std::vector< uword > Node::get_dof ( const std::vector< DOF > &  seed) const

◆ get_incre_acceleration() [1/2]

const vec & Node::get_incre_acceleration ( ) const

◆ get_incre_acceleration() [2/2]

vec Node::get_incre_acceleration ( unsigned  dim) const

◆ get_incre_damping_force() [1/2]

const vec & Node::get_incre_damping_force ( ) const

◆ get_incre_damping_force() [2/2]

vec Node::get_incre_damping_force ( unsigned  dim) const

◆ get_incre_displacement() [1/2]

const vec & Node::get_incre_displacement ( ) const

◆ get_incre_displacement() [2/2]

vec Node::get_incre_displacement ( unsigned  dim) const

◆ get_incre_inertial_force() [1/2]

const vec & Node::get_incre_inertial_force ( ) const

◆ get_incre_inertial_force() [2/2]

vec Node::get_incre_inertial_force ( unsigned  dim) const

◆ get_incre_nonviscous_force() [1/2]

const vec & Node::get_incre_nonviscous_force ( ) const

◆ get_incre_nonviscous_force() [2/2]

vec Node::get_incre_nonviscous_force ( unsigned  dim) const

◆ get_incre_resistance() [1/2]

const vec & Node::get_incre_resistance ( ) const

◆ get_incre_resistance() [2/2]

vec Node::get_incre_resistance ( unsigned  dim) const

◆ get_incre_velocity() [1/2]

const vec & Node::get_incre_velocity ( ) const

◆ get_incre_velocity() [2/2]

vec Node::get_incre_velocity ( unsigned  dim) const

◆ get_original_dof()

const uvec & Node::get_original_dof ( ) const

◆ get_reordered_dof()

const uvec & Node::get_reordered_dof ( ) const

◆ get_trial_acceleration() [1/2]

const vec & Node::get_trial_acceleration ( ) const

◆ get_trial_acceleration() [2/2]

vec Node::get_trial_acceleration ( unsigned  dim) const

◆ get_trial_damping_force() [1/2]

const vec & Node::get_trial_damping_force ( ) const

◆ get_trial_damping_force() [2/2]

vec Node::get_trial_damping_force ( unsigned  dim) const

◆ get_trial_displacement() [1/2]

const vec & Node::get_trial_displacement ( ) const

◆ get_trial_displacement() [2/2]

vec Node::get_trial_displacement ( unsigned  dim) const

◆ get_trial_inertial_force() [1/2]

const vec & Node::get_trial_inertial_force ( ) const

◆ get_trial_inertial_force() [2/2]

vec Node::get_trial_inertial_force ( unsigned  dim) const

◆ get_trial_nonviscous_force() [1/2]

const vec & Node::get_trial_nonviscous_force ( ) const

◆ get_trial_nonviscous_force() [2/2]

vec Node::get_trial_nonviscous_force ( unsigned  dim) const

◆ get_trial_resistance() [1/2]

const vec & Node::get_trial_resistance ( ) const

◆ get_trial_resistance() [2/2]

vec Node::get_trial_resistance ( unsigned  dim) const

◆ get_trial_velocity() [1/2]

const vec & Node::get_trial_velocity ( ) const

◆ get_trial_velocity() [2/2]

vec Node::get_trial_velocity ( unsigned  dim) const

◆ initial_position()

vec Node::initial_position ( unsigned  dim) const

◆ initialize()

void Node::initialize ( const shared_ptr< DomainBase > &  D)

This method should be called after elements are set. Elements will set the minimum number of DoFs for all related nodes.

Here is the call graph for this function:

◆ print()

void Node::print ( )
overridevirtual

Reimplemented from Tag.

Here is the call graph for this function:

◆ record()

std::vector< vec > Node::record ( OutputType  L) const

◆ reset_status()

void Node::reset_status ( )

◆ set_original_dof()

void Node::set_original_dof ( unsigned &  F)

◆ set_reordered_dof()

void Node::set_reordered_dof ( const uvec R)

◆ trial_position()

vec Node::trial_position ( unsigned  dim) const

◆ update_current_acceleration()

const vec & Node::update_current_acceleration ( vec &&  in)
Here is the caller graph for this function:

◆ update_current_damping_force()

const vec & Node::update_current_damping_force ( vec &&  in)

◆ update_current_displacement()

const vec & Node::update_current_displacement ( vec &&  in)
Here is the caller graph for this function:

◆ update_current_inertial_force()

const vec & Node::update_current_inertial_force ( vec &&  in)

◆ update_current_nonviscous_force()

const vec & Node::update_current_nonviscous_force ( vec &&  in)

◆ update_current_resistance()

const vec & Node::update_current_resistance ( vec &&  in)

◆ update_current_status() [1/3]

void Node::update_current_status ( const vec &  D)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_current_status() [2/3]

void Node::update_current_status ( const vec &  D,
const vec &  V 
)
Here is the call graph for this function:

◆ update_current_status() [3/3]

void Node::update_current_status ( const vec &  D,
const vec &  V,
const vec &  A 
)
Here is the call graph for this function:

◆ update_current_velocity()

const vec & Node::update_current_velocity ( vec &&  in)
Here is the caller graph for this function:

◆ update_incre_acceleration()

const vec & Node::update_incre_acceleration ( vec &&  in)
Here is the caller graph for this function:

◆ update_incre_damping_force()

const vec & Node::update_incre_damping_force ( vec &&  in)

◆ update_incre_displacement()

const vec & Node::update_incre_displacement ( vec &&  in)
Here is the caller graph for this function:

◆ update_incre_inertial_force()

const vec & Node::update_incre_inertial_force ( vec &&  in)

◆ update_incre_nonviscous_force()

const vec & Node::update_incre_nonviscous_force ( vec &&  in)

◆ update_incre_resistance()

const vec & Node::update_incre_resistance ( vec &&  in)

◆ update_incre_status() [1/3]

void Node::update_incre_status ( const vec &  D)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_incre_status() [2/3]

void Node::update_incre_status ( const vec &  D,
const vec &  V 
)
Here is the call graph for this function:

◆ update_incre_status() [3/3]

void Node::update_incre_status ( const vec &  D,
const vec &  V,
const vec &  A 
)
Here is the call graph for this function:

◆ update_incre_velocity()

const vec & Node::update_incre_velocity ( vec &&  in)
Here is the caller graph for this function:

◆ update_trial_acceleration()

const vec & Node::update_trial_acceleration ( vec &&  in)
Here is the caller graph for this function:

◆ update_trial_damping_force()

const vec & Node::update_trial_damping_force ( vec &&  in)

◆ update_trial_displacement()

const vec & Node::update_trial_displacement ( vec &&  in)
Here is the caller graph for this function:

◆ update_trial_inertial_force()

const vec & Node::update_trial_inertial_force ( vec &&  in)

◆ update_trial_nonviscous_force()

const vec & Node::update_trial_nonviscous_force ( vec &&  in)

◆ update_trial_resistance()

const vec & Node::update_trial_resistance ( vec &&  in)

◆ update_trial_status() [1/3]

void Node::update_trial_status ( const vec &  D)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_trial_status() [2/3]

void Node::update_trial_status ( const vec &  D,
const vec &  V 
)
Here is the call graph for this function:

◆ update_trial_status() [3/3]

void Node::update_trial_status ( const vec &  D,
const vec &  V,
const vec &  A 
)
Here is the call graph for this function:

◆ update_trial_velocity()

const vec & Node::update_trial_velocity ( vec &&  in)
Here is the caller graph for this function:

◆ validate_dof()

bool Node::validate_dof ( const std::vector< DOF > &  in) const

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