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

A RigidWall class. More...

#include <RigidWallPenalty.h>

Inheritance diagram for RigidWallPenalty:
Collaboration diagram for RigidWallPenalty:

Public Member Functions

 RigidWallPenalty (unsigned, unsigned, vec &&, vec &&, double, unsigned)
 
 RigidWallPenalty (unsigned, unsigned, vec &&, vec &&, vec &&, double, unsigned)
 
int initialize (const shared_ptr< DomainBase > &) override
 
int process (const shared_ptr< DomainBase > &) override
 Process and update both stiffness and resistance.
 
void commit_status () override
 
void clear_status () override
 
void reset_status () override
 
- Public Member Functions inherited from Constraint
 Constraint (unsigned, unsigned, std::vector< Node::DOF > &&, std::vector< Node::DOF > &&, unsigned)
 
const sp_vec & get_resistance () const
 
const sp_mat & get_stiffness () const
 
const vec & get_auxiliary_resistance () const
 
const vec & get_auxiliary_load () const
 
const sp_mat & get_auxiliary_stiffness () const
 
void set_multiplier_size (unsigned)
 
unsigned get_multiplier_size () const
 
- Public Member Functions inherited from ConditionalModifier
 ConditionalModifier (unsigned, unsigned, std::vector< Node::DOF > &&, std::vector< Node::DOF > &&)
 
virtual int process_resistance (const shared_ptr< DomainBase > &)
 Process and update resistance.
 
virtual void stage (const shared_ptr< DomainBase > &)
 Some algorithms need to manually modify some variables after solving.
 
std::set< uword > get_involving_nodes (const shared_ptr< DomainBase > &) const
 Return a set of all nodes involved.
 
const uvecget_node_dof () const
 
void deinitialize ()
 
bool is_initialized () const
 
void set_start_step (unsigned)
 
unsigned get_start_step () const
 
void set_end_step (unsigned)
 
unsigned get_end_step () const
 
virtual bool is_connected () const
 Indicate if this modifier can be deemed as an element that needs to account for connectivity.
 
bool validate_step (const shared_ptr< DomainBase > &) const
 Validate itself against the current active step to see if itself needs to be applied.
 
virtual void update_status (const vec &)
 
- 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
 
virtual void print ()
 

Protected Attributes

const unsigned n_dim
 
const double alpha
 
const vec edge_a
 
const vec edge_b
 
const vec origin
 
const vec outer_norm
 
const double length_a = 0.
 
const double length_b = 0.
 
- Protected Attributes inherited from Constraint
unsigned lagrangian_size
 
vec trial_lambda {lagrangian_size, fill::zeros}
 
vec current_lambda {lagrangian_size, fill::zeros}
 
sp_vec resistance
 
sp_mat stiffness
 
vec auxiliary_resistance
 
vec auxiliary_load
 
sp_mat auxiliary_stiffness
 
- Protected Attributes inherited from ConditionalModifier
unsigned start_step {1u}
 
unsigned end_step {static_cast<unsigned>(-1)}
 
const std::vector< Node::DOFdof_order
 
uvec target_node
 
uvec target_element
 
uvec target_dof
 

Additional Inherited Members

- Protected Member Functions inherited from ConditionalModifier
double get_amplitude (const shared_ptr< DomainBase > &) const
 
const std::vector< Node::DOF > & get_dof_component () const
 Return the DoF components, falls back to the DoF order.
 
bool validate_node (const shared_ptr< DomainBase > &) const
 
bool validate_element (const shared_ptr< DomainBase > &) const
 
uvec collect_node_dof (const shared_ptr< DomainBase > &) const
 

Detailed Description

A RigidWall class.

Author
tlc
Date
15/07/2020
Version
0.1.0

Constructor & Destructor Documentation

◆ RigidWallPenalty() [1/2]

RigidWallPenalty::RigidWallPenalty ( unsigned  T,
unsigned  A,
vec &&  O,
vec &&  N,
double  F,
unsigned  NS 
)

◆ RigidWallPenalty() [2/2]

RigidWallPenalty::RigidWallPenalty ( unsigned  T,
unsigned  A,
vec &&  O,
vec &&  E1,
vec &&  E2,
double  F,
unsigned  NS 
)

Member Function Documentation

◆ clear_status()

void RigidWallPenalty::clear_status ( )
overridevirtual

Reimplemented from ConditionalModifier.

Here is the caller graph for this function:

◆ commit_status()

void RigidWallPenalty::commit_status ( )
overridevirtual

Reimplemented from ConditionalModifier.

Here is the caller graph for this function:

◆ initialize()

int RigidWallPenalty::initialize ( const shared_ptr< DomainBase > &  D)
overridevirtual

Reimplemented from ConditionalModifier.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process()

int RigidWallPenalty::process ( const shared_ptr< DomainBase > &  )
overridevirtual

Process and update both stiffness and resistance.

This method provides all necessary pieces of typical constraints/loads required, including additional blocks in original global stiffness, border matrix resistance of multiplier, external loads.

Implements ConditionalModifier.

Here is the caller graph for this function:

◆ reset_status()

void RigidWallPenalty::reset_status ( )
overridevirtual

Reimplemented from ConditionalModifier.

Here is the caller graph for this function:

Member Data Documentation

◆ alpha

const double RigidWallPenalty::alpha
protected

◆ edge_a

const vec RigidWallPenalty::edge_a
protected

◆ edge_b

const vec RigidWallPenalty::edge_b
protected

◆ length_a

const double RigidWallPenalty::length_a = 0.
protected

◆ length_b

const double RigidWallPenalty::length_b = 0.
protected

◆ n_dim

const unsigned RigidWallPenalty::n_dim
protected

◆ origin

const vec RigidWallPenalty::origin
protected

◆ outer_norm

const vec RigidWallPenalty::outer_norm
protected

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