suanPan
🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework
Loading...
Searching...
No Matches
FixedLength< DIM > Class Template Reference

A FixedLength class. More...

#include <FixedLength.h>

Inheritance diagram for FixedLength< DIM >:
Collaboration diagram for FixedLength< DIM >:

Public Member Functions

 FixedLength (const unsigned T, uvec &&N)
 
int initialize (const shared_ptr< DomainBase > &D) override
 
int process (const shared_ptr< DomainBase > &D) override
 Process and update both stiffness and resistance.
 
bool is_connected () const override
 Indicate if this modifier can be deemed as an element that needs to account for connectivity.
 
void update_status (const vec &incre_lambda) override
 
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
 
bool validate_step (const shared_ptr< DomainBase > &) const
 Validate itself against the current active step to see if itself needs to be applied.
 
- 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

bool min_bound = false
 
bool max_bound = false
 
double min_gap = 0.
 
double max_gap = 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

template<unsigned DIM>
class FixedLength< DIM >

A FixedLength class.

The FixedLength constraint applies constraint to two nodes so that the distance remain constant between those two nodes.

Constructor & Destructor Documentation

◆ FixedLength()

template<unsigned DIM>
FixedLength< DIM >::FixedLength ( const unsigned  T,
uvec &&  N 
)
inline

Member Function Documentation

◆ clear_status()

template<unsigned DIM>
void FixedLength< DIM >::clear_status ( )
inlineoverridevirtual

Reimplemented from ConditionalModifier.

Reimplemented in MaxForce< DIM >.

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

◆ commit_status()

template<unsigned DIM>
void FixedLength< DIM >::commit_status ( )
inlineoverridevirtual

Reimplemented from ConditionalModifier.

Reimplemented in MaxForce< DIM >.

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

◆ initialize()

template<unsigned DIM>
int FixedLength< DIM >::initialize ( const shared_ptr< DomainBase > &  D)
inlineoverridevirtual

Reimplemented from ConditionalModifier.

Here is the call graph for this function:

◆ is_connected()

template<unsigned DIM>
bool FixedLength< DIM >::is_connected ( ) const
inlineoverridevirtual

Indicate if this modifier can be deemed as an element that needs to account for connectivity.

Some constraints may modify global stiffness matrix so that it needs to be treated as an element which may affect bandwidth of banded storage. By calling this method, the RCM reordering algorithm will take this constraint into consideration. Make sure it is properly overridden in the derived classes.

Reimplemented from ConditionalModifier.

◆ process()

template<unsigned DIM>
int FixedLength< DIM >::process ( const shared_ptr< DomainBase > &  )
inlineoverridevirtual

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.

Reimplemented in MaxForce< DIM >.

Here is the call graph for this function:

◆ reset_status()

template<unsigned DIM>
void FixedLength< DIM >::reset_status ( )
inlineoverridevirtual

Reimplemented from ConditionalModifier.

Reimplemented in MaxForce< DIM >.

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

◆ update_status()

template<unsigned DIM>
void FixedLength< DIM >::update_status ( const vec &  incre_lambda)
inlineoverridevirtual

Reimplemented from ConditionalModifier.

Member Data Documentation

◆ max_bound

template<unsigned DIM>
bool FixedLength< DIM >::max_bound = false
protected

◆ max_gap

template<unsigned DIM>
double FixedLength< DIM >::max_gap = 0.
protected

◆ min_bound

template<unsigned DIM>
bool FixedLength< DIM >::min_bound = false
protected

◆ min_gap

template<unsigned DIM>
double FixedLength< DIM >::min_gap = 0.
protected

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