suanPan
Utility
Collaboration diagram for Utility:

Namespaces

namespace  suanpan
 
namespace  interpolation
 
namespace  area
 
namespace  shape
 
namespace  tensor
 
namespace  transform
 

Concepts

concept  Differentiable
 

Classes

class  ExternalModule
 A ExternalModule class handles communication between the main program and external library. More...
 
class  load
 
class  B2DC
 A B2DC class. More...
 
class  B2DL
 A B2DL class. More...
 
class  B3DC
 A B3DC class. More...
 
class  B3DL
 A B3DL class. More...
 
class  B3DOSC
 A B3DOSC class. More...
 
class  B3DOSL
 A B3DOSL class. More...
 
struct  IGA
 
class  BSpline
 
class  BSplineCurve2D
 
class  BSplineCurve3D
 
class  BSplineCurve4D
 
class  BSplineSurface
 
class  BSplineSurface2D
 
class  BSplineSurface3D
 
class  BSplineSurface4D
 
class  BSplineVolume
 
class  BSplineVolume3D
 
class  BSplineVolume4D
 
class  NURBSBase
 
class  NURBS
 
class  NURBSCurve2D
 
class  NURBSCurve3D
 
class  NURBSCurve4D
 
class  NURBSSurface
 
class  NURBSSurface2D
 
class  NURBSSurface3D
 
class  NURBSSurface4D
 
class  NURBSVolume
 
class  NURBSVolume3D
 
class  NURBSVolume4D
 
class  Orientation
 A Orientation class. More...
 
struct  PhaseFieldData
 
class  PhaseField
 A PhaseField class. More...
 
class  T2DC
 A T2DC class. More...
 
class  T2DL
 A T2DL class. More...
 
class  T3DC
 A T3DC class. More...
 
class  T3DL
 A T3DL class. More...
 
class  Expression
 A Expression class represents a maths expression. More...
 
class  SimpleScalarExpression
 
class  SimpleVectorExpression
 
class  IntegrationPlan
 An IntegrationPlan class. More...
 
class  LBFGS
 The LBFGS class defines a solver using LBFGS iteration method. More...
 
class  Quaternion< T >
 An Quaternion class. More...
 
class  ResourceHolder< T >
 
class  Oscillator< T >
 

Enumerations

enum class  OrientationType {
  OrientationType::T2D , OrientationType::T3D , OrientationType::B2D , OrientationType::B3D ,
  OrientationType::B3DOS
}
 
enum class  IntegrationType {
  IntegrationType::GAUSS , IntegrationType::HERMITE , IntegrationType::CHEBYSHEV , IntegrationType::LOBATTO ,
  IntegrationType::RADAU , IntegrationType::LAGUERRE , IntegrationType::IRONS , IntegrationType::TRIANGLE
}
 

Functions

 ExternalModule::ExternalModule (string)
 
 ExternalModule::ExternalModule (const ExternalModule &)=delete
 
 ExternalModule::ExternalModule (ExternalModule &&)=delete
 
ExternalModuleExternalModule::operator= (const ExternalModule &)=delete
 
ExternalModuleExternalModule::operator= (ExternalModule &&)=delete
 
 ExternalModule::~ExternalModule ()
 
bool ExternalModule::locate_c_module (const string &)
 
bool ExternalModule::locate_cpp_module (const string &)
 
void ExternalModule::new_object (unique_ptr< Element > &, istringstream &) const
 
void ExternalModule::new_object (unique_ptr< Load > &, istringstream &) const
 
void ExternalModule::new_object (unique_ptr< Material > &, istringstream &) const
 
void ExternalModule::new_object (unique_ptr< Section > &, istringstream &) const
 
void ExternalModule::new_object (unique_ptr< Solver > &, istringstream &) const
 
void ExternalModule::new_object (unique_ptr< Amplitude > &, istringstream &) const
 
void ExternalModule::new_object (unique_ptr< Modifier > &, istringstream &) const
 
void ExternalModule::new_object (unique_ptr< Constraint > &, istringstream &) const
 
void ExternalModule::new_adapter (unique_ptr< Element > &, istringstream &) const
 
void ExternalModule::new_adapter (unique_ptr< Load > &, istringstream &) const
 
void ExternalModule::new_adapter (unique_ptr< Material > &, istringstream &) const
 
void ExternalModule::new_adapter (unique_ptr< Section > &, istringstream &) const
 
void ExternalModule::new_adapter (unique_ptr< Solver > &, istringstream &) const
 
void ExternalModule::new_adapter (unique_ptr< Amplitude > &, istringstream &) const
 
void ExternalModule::new_adapter (unique_ptr< Modifier > &, istringstream &) const
 
void ExternalModule::new_adapter (unique_ptr< Constraint > &, istringstream &) const
 
template<typename T >
static void load::object (unique_ptr< T > &, const shared_ptr< DomainBase > &, const string &, istringstream &)
 
int test_material (const std::shared_ptr< DomainBase > &, std::istringstream &, unsigned)
 
int test_material_with_base3d (const std::shared_ptr< DomainBase > &, std::istringstream &)
 
int test_material_by_load (const std::shared_ptr< DomainBase > &, std::istringstream &, unsigned)
 
int test_material_by_load_with_base3d (const std::shared_ptr< DomainBase > &, std::istringstream &)
 
int test_material_by_strain_history (const std::shared_ptr< DomainBase > &, std::istringstream &)
 
int test_material_by_stress_history (const std::shared_ptr< DomainBase > &, std::istringstream &)
 
int test_section (const std::shared_ptr< DomainBase > &, std::istringstream &, unsigned)
 
int test_section_by_deformation_history (const std::shared_ptr< DomainBase > &, std::istringstream &)
 
void argument_parser (int, char **)
 
void print_version ()
 
void print_helper ()
 
void cli_mode (const shared_ptr< Bead > &)
 
void test_mode ()
 
int eig_solve (vec &, mat &, const std::shared_ptr< MetaMat< double > > &, const std::shared_ptr< MetaMat< double > > &, unsigned, const char *="SM")
 
int eig_solve (cx_vec &, cx_mat &, const std::shared_ptr< MetaMat< double > > &, const std::shared_ptr< MetaMat< double > > &, unsigned, const char *="LM")
 
int process_command (const shared_ptr< Bead > &, istringstream &)
 
bool normalise_command (string &, string &)
 
int process_file (const shared_ptr< Bead > &, const char *)
 
int execute_command (istringstream &)
 
fs::path get_history_path ()
 
template<sp_i T>
uvec to_uvec (const suanpan::set< T > &in)
 
template<sp_i T>
uvec to_uvec (const suanpan::unordered_set< T > &in)
 
template<>
void IntegrationPlan::generate< IntegrationType::GAUSS > (unsigned, unsigned)
 
template<>
void IntegrationPlan::generate< IntegrationType::HERMITE > (unsigned, unsigned)
 
template<>
void IntegrationPlan::generate< IntegrationType::CHEBYSHEV > (unsigned, unsigned)
 
template<>
void IntegrationPlan::generate< IntegrationType::LOBATTO > (unsigned, unsigned)
 
template<>
void IntegrationPlan::generate< IntegrationType::RADAU > (unsigned, unsigned)
 
template<>
void IntegrationPlan::generate< IntegrationType::LAGUERRE > (unsigned, unsigned)
 
template<>
void IntegrationPlan::generate< IntegrationType::IRONS > (unsigned, unsigned)
 
template<>
void IntegrationPlan::generate< IntegrationType::TRIANGLE > (unsigned, unsigned)
 
 Oscillator< T >::Oscillator (const T O, const T Z)
 
Mat< TOscillator< T >::compute_response (const T interval, const Col< T > &motion)
 
Col< TOscillator< T >::compute_maximum_response (const T interval, const Col< T > &motion)
 
template<sp_d T>
Mat< T > response_spectrum (const T damping_ratio, const T interval, const Col< T > &motion, const Col< T > &period)
 compute response spectrum of the given ground motion More...
 
template<sp_d T>
Mat< T > sdof_response (const T damping_ratio, const T interval, const T freq, const Col< T > &motion)
 compute response of a linear SDOF system More...
 
template<typename T >
auto sort_color_metis (suanpan::graph< T > &element_register, const int num_color, const char method)
 
template<typename T >
std::vector< std::vector< T > > sort_color_wp (const suanpan::graph< T > &node_register)
 
template<typename T >
std::vector< std::vector< T > > sort_color_mis (const suanpan::graph< T > &node_register)
 
uvec sort_rcm (const std::vector< uvec > &, const uvec &)
 
uvec sort_rcm (const std::vector< suanpan::unordered_set< uword > > &)
 
template<sp_d eT>
uvec sort_rcm (const SpMat< eT > &MEAT)
 
template<sp_d eT>
uvec sort_rcm (const Mat< eT > &MEAT)
 
template<sp_d dt>
uvec sort_rcm (const csc_form< dt, uword > &csc_mat)
 
template<sp_d dt, sp_i it>
uvec sort_rcm (triplet_form< dt, it > &triplet_mat)
 
template<typename T >
static void suanpan::mass::lumped_simple::apply (Mat< T > &)
 
template<typename T >
static void suanpan::mass::lumped_scale::apply (Mat< T > &, unsigned)
 
template<typename T >
static void suanpan::damping::rayleigh::apply (const shared_ptr< Element > &, T, T, T, T)
 
template<typename T >
static void suanpan::damping::elemental::apply (const shared_ptr< Element > &, T)
 
 Quaternion< T >::Quaternion ()
 
 Quaternion< T >::Quaternion (T, T, T, T)
 
 Quaternion< T >::Quaternion (T, const Col< T > &)
 
 Quaternion< T >::Quaternion (T, Col< T > &&)
 
const TQuaternion< T >::real () const
 
const Col< T > & Quaternion< T >::imag () const
 
T Quaternion< T >::norm () const
 
QuaternionQuaternion< T >::normalise ()
 
Quaternion Quaternion< T >::inv () const
 
Quaternion Quaternion< T >::conj () const
 
Quaternion Quaternion< T >::operator+ (const Quaternion &) const
 
QuaternionQuaternion< T >::operator+= (const Quaternion &)
 
Quaternion Quaternion< T >::operator- (const Quaternion &) const
 
QuaternionQuaternion< T >::operator-= (const Quaternion &)
 
Quaternion Quaternion< T >::operator* (const Quaternion &) const
 
QuaternionQuaternion< T >::operator*= (const Quaternion &)
 
Quaternion Quaternion< T >::operator/ (const Quaternion &) const
 
QuaternionQuaternion< T >::operator/= (const Quaternion &)
 
void Quaternion< T >::print () const
 
Mat< TQuaternion< T >::operator* (const Mat< T > &) const
 
Mat< TQuaternion< T >::to_mat () const
 
Col< TQuaternion< T >::to_pseudo () const
 
template<typename T >
area::triangle (const Mat< T > &EC)
 
template<typename T >
area::shoelace (const Mat< T > &C)
 
template<typename T >
Mat< T > shape::truss (T int_pts, unsigned order=0, unsigned num_node=2)
 
template<typename T >
Col< T > shape::beam (T int_pts, unsigned order, double length)
 
template<typename T >
Mat< T > shape::triangle (const Col< T > &int_pts, unsigned order)
 compute the shape function or its derivative of six node triangle in global coordinate system More...
 
template<typename T >
Mat< T > shape::quad (const Mat< T > &int_pts, unsigned order, unsigned num_node=4)
 
template<typename T >
Mat< T > shape::cube (const Mat< T > &int_pts, unsigned order, unsigned num_node=8)
 
template<typename T >
Mat< T > shape::stress (T X, T Y, unsigned S)
 
template<typename T >
Mat< T > shape::stress (const Col< T > &C, unsigned S)
 
template<typename T >
Mat< T > shape::stress5 (const Col< T > &C)
 
template<typename T >
Mat< T > shape::stress7 (const Col< T > &C)
 
template<typename T >
Mat< T > shape::stress9 (const Col< T > &C)
 
template<typename T >
Mat< T > shape::stress11 (const Col< T > &C)
 
template<typename T >
Mat< T > shape::stress5 (T X, T Y)
 
template<typename T >
Mat< T > shape::stress7 (T X, T Y)
 
template<typename T >
Mat< T > shape::stress9 (T X, T Y)
 
template<typename T >
Mat< T > shape::stress11 (T X, T Y)
 
template<typename T >
Mat< T > shape::strain (T X, T Y, T V, unsigned S)
 
template<typename T >
Mat< T > shape::strain (const Col< T > &C, T V, unsigned S)
 
template<typename T >
Mat< T > shape::strain5 (T X, T Y, T V)
 
template<typename T >
Mat< T > shape::strain7 (T X, T Y, T V)
 
template<typename T >
Mat< T > shape::strain9 (T X, T Y, T V)
 
template<typename T >
Mat< T > shape::strain11 (T X, T Y, T V)
 
template<typename T >
Mat< T > shape::strain5 (const Col< T > &C, T V)
 
template<typename T >
Mat< T > shape::strain7 (const Col< T > &C, T V)
 
template<typename T >
Mat< T > shape::strain9 (const Col< T > &C, T V)
 
template<typename T >
Mat< T > shape::strain11 (const Col< T > &C, T V)
 
template<typename T >
Mat< T > shape::linear_stress (T X, T Y)
 
template<typename T >
Mat< T > shape::plate::triangle (const Col< T > &int_pts, unsigned order, unsigned num_node, const Mat< T > &nodes)
 
template<typename T >
Mat< T > shape::plate::quad (const Col< T > &int_pts, unsigned order, unsigned num_node=4)
 
mat shape::stress5 (const vec &C)
 
mat shape::stress7 (const vec &C)
 
mat shape::stress9 (const vec &C)
 
mat shape::stress11 (const vec &C)
 
mat shape::strain5 (const vec &C, double V)
 
mat shape::strain7 (const vec &C, double V)
 
mat shape::strain9 (const vec &C, double V)
 
mat shape::strain11 (const vec &C, double V)
 

Variables

const string ExternalModule::library_name
 

Detailed Description

Enumeration Type Documentation

◆ IntegrationType

enum class IntegrationType
strong
Enumerator
GAUSS 
HERMITE 
CHEBYSHEV 
LOBATTO 
RADAU 
LAGUERRE 
IRONS 
TRIANGLE 

◆ OrientationType

enum class OrientationType
strong
Enumerator
T2D 
T3D 
B2D 
B3D 
B3DOS 

Function Documentation

◆ apply() [1/4]

template<typename T >
void suanpan::damping::elemental::apply ( const shared_ptr< Element > &  element_obj,
damping_ratio 
)
static
Here is the call graph for this function:

◆ apply() [2/4]

template<typename T >
void suanpan::damping::rayleigh::apply ( const shared_ptr< Element > &  element_obj,
alpha,
beta,
zeta,
eta 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ apply() [3/4]

template<typename T >
void suanpan::mass::lumped_simple::apply ( Mat< T > &  mass)
static
Here is the caller graph for this function:

◆ apply() [4/4]

template<typename T >
void suanpan::mass::lumped_scale::apply ( Mat< T > &  mass,
unsigned  dim 
)
static

◆ argument_parser()

void argument_parser ( int  argc,
char **  argv 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ beam()

template<typename T >
Col< T > shape::beam ( int_pts,
unsigned  order,
double  length 
)

◆ cli_mode()

void cli_mode ( const shared_ptr< Bead > &  model)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_maximum_response()

template<sp_d T>
Col< T > Oscillator< T >::compute_maximum_response ( const T  interval,
const Col< T > &  motion 
)
inline

◆ compute_response()

template<sp_d T>
Mat< T > Oscillator< T >::compute_response ( const T  interval,
const Col< T > &  motion 
)
inline
Here is the caller graph for this function:

◆ conj()

template<typename T >
Quaternion< T > Quaternion< T >::conj

◆ cube()

template<typename T >
Mat< T > shape::cube ( const Mat< T > &  int_pts,
unsigned  order,
unsigned  num_node = 8 
)
Here is the caller graph for this function:

◆ eig_solve() [1/2]

int eig_solve ( cx_vec &  eigval,
cx_mat &  eigvec,
const std::shared_ptr< MetaMat< double > > &  K,
const std::shared_ptr< MetaMat< double > > &  M,
unsigned  num,
const char *  form = "LM" 
)

◆ eig_solve() [2/2]

int eig_solve ( vec &  eigval,
mat &  eigvec,
const std::shared_ptr< MetaMat< double > > &  K,
const std::shared_ptr< MetaMat< double > > &  M,
unsigned  num,
const char *  form = "SM" 
)
Here is the caller graph for this function:

◆ execute_command()

int execute_command ( istringstream &  command)
Here is the caller graph for this function:

◆ ExternalModule() [1/3]

ExternalModule::ExternalModule ( const ExternalModule )
delete

◆ ExternalModule() [2/3]

ExternalModule::ExternalModule ( ExternalModule &&  )
delete

◆ ExternalModule() [3/3]

ExternalModule::ExternalModule ( string  L)
explicit
Here is the call graph for this function:

◆ get_history_path()

fs::path get_history_path ( )
Here is the caller graph for this function:

◆ imag()

template<typename T >
const Col< T > & Quaternion< T >::imag

◆ IntegrationPlan::generate< IntegrationType::CHEBYSHEV >()

template<>
void IntegrationPlan::generate< IntegrationType::CHEBYSHEV > ( unsigned  D,
unsigned  O 
)
Here is the call graph for this function:

◆ IntegrationPlan::generate< IntegrationType::GAUSS >()

template<>
void IntegrationPlan::generate< IntegrationType::GAUSS > ( unsigned  D,
unsigned  O 
)
Here is the call graph for this function:

◆ IntegrationPlan::generate< IntegrationType::HERMITE >()

template<>
void IntegrationPlan::generate< IntegrationType::HERMITE > ( unsigned  D,
unsigned  O 
)
Here is the call graph for this function:

◆ IntegrationPlan::generate< IntegrationType::IRONS >()

template<>
void IntegrationPlan::generate< IntegrationType::IRONS > ( unsigned  D,
unsigned  O 
)

◆ IntegrationPlan::generate< IntegrationType::LAGUERRE >()

template<>
void IntegrationPlan::generate< IntegrationType::LAGUERRE > ( unsigned  D,
unsigned  O 
)
Here is the call graph for this function:

◆ IntegrationPlan::generate< IntegrationType::LOBATTO >()

template<>
void IntegrationPlan::generate< IntegrationType::LOBATTO > ( unsigned  D,
unsigned  O 
)
Here is the call graph for this function:

◆ IntegrationPlan::generate< IntegrationType::RADAU >()

template<>
void IntegrationPlan::generate< IntegrationType::RADAU > ( unsigned  D,
unsigned  O 
)
Here is the call graph for this function:

◆ IntegrationPlan::generate< IntegrationType::TRIANGLE >()

template<>
void IntegrationPlan::generate< IntegrationType::TRIANGLE > ( unsigned  D,
unsigned  O 
)

◆ inv()

template<typename T >
Quaternion< T > Quaternion< T >::inv
Here is the call graph for this function:
Here is the caller graph for this function:

◆ linear_stress()

template<typename T >
Mat< T > shape::linear_stress ( X,
Y 
)
Here is the caller graph for this function:

◆ locate_c_module()

bool ExternalModule::locate_c_module ( const string &  module_name)

◆ locate_cpp_module()

bool ExternalModule::locate_cpp_module ( const string &  module_name)

◆ new_adapter() [1/8]

void ExternalModule::new_adapter ( unique_ptr< Amplitude > &  ,
istringstream &   
) const

◆ new_adapter() [2/8]

void ExternalModule::new_adapter ( unique_ptr< Constraint > &  ,
istringstream &   
) const

◆ new_adapter() [3/8]

void ExternalModule::new_adapter ( unique_ptr< Element > &  ,
istringstream &   
) const

◆ new_adapter() [4/8]

void ExternalModule::new_adapter ( unique_ptr< Load > &  ,
istringstream &   
) const

◆ new_adapter() [5/8]

void ExternalModule::new_adapter ( unique_ptr< Material > &  return_obj,
istringstream &  command 
) const
Here is the call graph for this function:

◆ new_adapter() [6/8]

void ExternalModule::new_adapter ( unique_ptr< Modifier > &  ,
istringstream &   
) const

◆ new_adapter() [7/8]

void ExternalModule::new_adapter ( unique_ptr< Section > &  ,
istringstream &   
) const

◆ new_adapter() [8/8]

void ExternalModule::new_adapter ( unique_ptr< Solver > &  ,
istringstream &   
) const

◆ new_object() [1/8]

void ExternalModule::new_object ( unique_ptr< Amplitude > &  return_obj,
istringstream &  command 
) const

◆ new_object() [2/8]

void ExternalModule::new_object ( unique_ptr< Constraint > &  return_obj,
istringstream &  command 
) const

◆ new_object() [3/8]

void ExternalModule::new_object ( unique_ptr< Element > &  return_obj,
istringstream &  command 
) const

◆ new_object() [4/8]

void ExternalModule::new_object ( unique_ptr< Load > &  return_obj,
istringstream &  command 
) const

◆ new_object() [5/8]

void ExternalModule::new_object ( unique_ptr< Material > &  return_obj,
istringstream &  command 
) const

◆ new_object() [6/8]

void ExternalModule::new_object ( unique_ptr< Modifier > &  return_obj,
istringstream &  command 
) const

◆ new_object() [7/8]

void ExternalModule::new_object ( unique_ptr< Section > &  return_obj,
istringstream &  command 
) const

◆ new_object() [8/8]

void ExternalModule::new_object ( unique_ptr< Solver > &  return_obj,
istringstream &  command 
) const

◆ norm()

template<typename T >
T Quaternion< T >::norm

◆ normalise()

template<typename T >
Quaternion< T > & Quaternion< T >::normalise
Here is the call graph for this function:

◆ normalise_command()

bool normalise_command ( string &  all_line,
string &  command_line 
)
Here is the caller graph for this function:

◆ object()

template<typename T >
void load::object ( unique_ptr< T > &  new_object,
const shared_ptr< DomainBase > &  domain,
const string &  id,
istringstream &  command 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator*() [1/2]

template<typename T >
Mat< T > Quaternion< T >::operator* ( const Mat< T > &  I) const
Here is the call graph for this function:

◆ operator*() [2/2]

template<typename T >
Quaternion< T > Quaternion< T >::operator* ( const Quaternion< T > &  B) const

◆ operator*=()

template<typename T >
Quaternion< T > & Quaternion< T >::operator*= ( const Quaternion< T > &  B)

◆ operator+()

template<typename T >
Quaternion< T > Quaternion< T >::operator+ ( const Quaternion< T > &  B) const

◆ operator+=()

template<typename T >
Quaternion< T > & Quaternion< T >::operator+= ( const Quaternion< T > &  B)

◆ operator-()

template<typename T >
Quaternion< T > Quaternion< T >::operator- ( const Quaternion< T > &  B) const

◆ operator-=()

template<typename T >
Quaternion< T > & Quaternion< T >::operator-= ( const Quaternion< T > &  B)

◆ operator/()

template<typename T >
Quaternion< T > Quaternion< T >::operator/ ( const Quaternion< T > &  B) const
Here is the call graph for this function:

◆ operator/=()

template<typename T >
Quaternion< T > & Quaternion< T >::operator/= ( const Quaternion< T > &  B)
Here is the call graph for this function:

◆ operator=() [1/2]

ExternalModule & ExternalModule::operator= ( const ExternalModule )
delete

◆ operator=() [2/2]

ExternalModule & ExternalModule::operator= ( ExternalModule &&  )
delete

◆ Oscillator()

template<sp_d T>
Oscillator< T >::Oscillator ( const T  O,
const T  Z 
)
inline

◆ print()

template<typename T >
void Quaternion< T >::print

◆ print_helper()

void print_helper ( )
Here is the caller graph for this function:

◆ print_version()

void print_version ( )
Here is the caller graph for this function:

◆ process_command()

int process_command ( const shared_ptr< Bead > &  model,
istringstream &  command 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_file()

int process_file ( const shared_ptr< Bead > &  model,
const char *  file_name 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ quad() [1/2]

template<typename T >
Mat< T > shape::plate::quad ( const Col< T > &  int_pts,
unsigned  order,
unsigned  num_node = 4 
)

◆ quad() [2/2]

template<typename T >
Mat< T > shape::quad ( const Mat< T > &  int_pts,
unsigned  order,
unsigned  num_node = 4 
)
Here is the caller graph for this function:

◆ Quaternion() [1/4]

template<typename T >
Quaternion< T >::Quaternion

◆ Quaternion() [2/4]

template<typename T >
Quaternion< T >::Quaternion ( T  R,
Col< T > &&  I 
)

◆ Quaternion() [3/4]

template<typename T >
Quaternion< T >::Quaternion ( T  R,
const Col< T > &  I 
)

◆ Quaternion() [4/4]

template<typename T >
Quaternion< T >::Quaternion ( T  R,
T  I,
T  J,
T  K 
)

◆ real()

template<typename T >
const T & Quaternion< T >::real

◆ response_spectrum()

template<sp_d T>
Mat< T > response_spectrum ( const T  damping_ratio,
const T  interval,
const Col< T > &  motion,
const Col< T > &  period 
)

compute response spectrum of the given ground motion

Parameters
damping_ratiodamping ratio
intervalsampling interval of the target ground motion
motiontarget ground motion stored in one column
periodperiods where response spectrum needs to be computed
Returns
response spectrum stored in four columns (period, displacement, velocity, acceleration)
Here is the call graph for this function:

◆ sdof_response()

template<sp_d T>
Mat< T > sdof_response ( const T  damping_ratio,
const T  interval,
const T  freq,
const Col< T > &  motion 
)

compute response of a linear SDOF system

Parameters
damping_ratiodamping ratio of the system
intervaltime step size
freqfrequency of the system (Hz)
motionacceleration record
Returns
response history
Here is the call graph for this function:

◆ shoelace()

template<typename T >
T area::shoelace ( const Mat< T > &  C)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_color_metis()

template<typename T >
auto sort_color_metis ( suanpan::graph< T > &  element_register,
const int  num_color,
const char  method 
)
Here is the call graph for this function:

◆ sort_color_mis()

template<typename T >
std::vector< std::vector< T > > sort_color_mis ( const suanpan::graph< T > &  node_register)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_color_wp()

template<typename T >
std::vector< std::vector< T > > sort_color_wp ( const suanpan::graph< T > &  node_register)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_rcm() [1/6]

template<sp_d dt>
uvec sort_rcm ( const csc_form< dt, uword > &  csc_mat)

Get the size of the square matrix.

Collect the number of degree of each node.

Here is the call graph for this function:

◆ sort_rcm() [2/6]

template<sp_d eT>
uvec sort_rcm ( const Mat< eT > &  MEAT)
Here is the call graph for this function:

◆ sort_rcm() [3/6]

template<sp_d eT>
uvec sort_rcm ( const SpMat< eT > &  MEAT)

Get the size of the square matrix.

Collect the number of degree of each node.

Get the indices array in increasing order of degree.

Now define the mask vector to indicate if one node is numbered or not.

Define the new order vector.

Preparation is ready. The G stores all vertices increasing order of degree. The adjacency stores the neighbor vertices for each vertex sorted according to the number of degree. Now start to loop over all nodes.

Define one position indicator IDXA for numbered vertices and two other position indicator IDXB and IDXC for looping.

While the sum of mask does not equal to the size of matrix, there are vertices not numbered in the system, the algorithm should continue.

IDXC will always point to the end of the vector. For any time when IDXB==IDXC, both indicators reach the end of reorder vector, i.e., there is no sub level any more (forms an independent subset). The graph cannot grow any more, then get the vertex with minimum degree as the new start point.

IDXA should be less that S so that G(IDXA) does not overflow.

Once IDXA hits S, there is no unnumbered vertex in the graph. Quit the loop.

Push in first unnumbered element in the list.

Label it as renumbered and move IDXA to next position.

Now we at least has one root, which is indicated by the indicator IDXB, in our graph, push in all children into the vector. As they are already sorted, we can simply push in. When the loop is finished, move IDXB to next position, which may have another root or the children of current root.

Here is the call graph for this function:

◆ sort_rcm() [4/6]

uvec sort_rcm ( const std::vector< suanpan::unordered_set< uword > > &  adjacency)
Here is the call graph for this function:

◆ sort_rcm() [5/6]

uvec sort_rcm ( const std::vector< uvec > &  A,
const uvec &  E 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_rcm() [6/6]

template<sp_d dt, sp_i it>
uvec sort_rcm ( triplet_form< dt, it > &  triplet_mat)
Here is the call graph for this function:

◆ strain() [1/2]

template<typename T >
Mat< T > shape::strain ( const Col< T > &  C,
V,
unsigned  S 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ strain() [2/2]

template<typename T >
Mat< T > shape::strain ( X,
Y,
V,
unsigned  S 
)
Here is the caller graph for this function:

◆ strain11() [1/3]

template<typename T >
Mat< T > shape::strain11 ( const Col< T > &  C,
V 
)
Here is the call graph for this function:

◆ strain11() [2/3]

mat shape::strain11 ( const vec &  C,
double  V 
)
inline
Here is the call graph for this function:

◆ strain11() [3/3]

template<typename T >
Mat< T > shape::strain11 ( X,
Y,
V 
)
Here is the call graph for this function:

◆ strain5() [1/3]

template<typename T >
Mat< T > shape::strain5 ( const Col< T > &  C,
V 
)
Here is the call graph for this function:

◆ strain5() [2/3]

mat shape::strain5 ( const vec &  C,
double  V 
)
inline
Here is the call graph for this function:

◆ strain5() [3/3]

template<typename T >
Mat< T > shape::strain5 ( X,
Y,
V 
)
Here is the call graph for this function:

◆ strain7() [1/3]

template<typename T >
Mat< T > shape::strain7 ( const Col< T > &  C,
V 
)
Here is the call graph for this function:

◆ strain7() [2/3]

mat shape::strain7 ( const vec &  C,
double  V 
)
inline
Here is the call graph for this function:

◆ strain7() [3/3]

template<typename T >
Mat< T > shape::strain7 ( X,
Y,
V 
)
Here is the call graph for this function:

◆ strain9() [1/3]

template<typename T >
Mat< T > shape::strain9 ( const Col< T > &  C,
V 
)
Here is the call graph for this function:

◆ strain9() [2/3]

mat shape::strain9 ( const vec &  C,
double  V 
)
inline
Here is the call graph for this function:

◆ strain9() [3/3]

template<typename T >
Mat< T > shape::strain9 ( X,
Y,
V 
)
Here is the call graph for this function:

◆ stress() [1/2]

template<typename T >
Mat< T > shape::stress ( const Col< T > &  C,
unsigned  S 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ stress() [2/2]

template<typename T >
Mat< T > shape::stress ( X,
Y,
unsigned  S 
)
Here is the caller graph for this function:

◆ stress11() [1/3]

template<typename T >
Mat< T > shape::stress11 ( const Col< T > &  C)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ stress11() [2/3]

mat shape::stress11 ( const vec &  C)
inline
Here is the call graph for this function:

◆ stress11() [3/3]

template<typename T >
Mat< T > shape::stress11 ( X,
Y 
)
Here is the call graph for this function:

◆ stress5() [1/3]

template<typename T >
Mat< T > shape::stress5 ( const Col< T > &  C)
Here is the call graph for this function:

◆ stress5() [2/3]

mat shape::stress5 ( const vec &  C)
inline
Here is the call graph for this function:

◆ stress5() [3/3]

template<typename T >
Mat< T > shape::stress5 ( X,
Y 
)
Here is the call graph for this function:

◆ stress7() [1/3]

template<typename T >
Mat< T > shape::stress7 ( const Col< T > &  C)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ stress7() [2/3]

mat shape::stress7 ( const vec &  C)
inline
Here is the call graph for this function:

◆ stress7() [3/3]

template<typename T >
Mat< T > shape::stress7 ( X,
Y 
)
Here is the call graph for this function:

◆ stress9() [1/3]

template<typename T >
Mat< T > shape::stress9 ( const Col< T > &  C)
Here is the call graph for this function:

◆ stress9() [2/3]

mat shape::stress9 ( const vec &  C)
inline
Here is the call graph for this function:

◆ stress9() [3/3]

template<typename T >
Mat< T > shape::stress9 ( X,
Y 
)
Here is the call graph for this function:

◆ test_material()

int test_material ( const std::shared_ptr< DomainBase > &  ,
std::istringstream &  ,
unsigned   
)

◆ test_material_by_load()

int test_material_by_load ( const std::shared_ptr< DomainBase > &  ,
std::istringstream &  ,
unsigned   
)

◆ test_material_by_load_with_base3d()

int test_material_by_load_with_base3d ( const std::shared_ptr< DomainBase > &  ,
std::istringstream &   
)

◆ test_material_by_strain_history()

int test_material_by_strain_history ( const std::shared_ptr< DomainBase > &  ,
std::istringstream &   
)

◆ test_material_by_stress_history()

int test_material_by_stress_history ( const std::shared_ptr< DomainBase > &  ,
std::istringstream &   
)

◆ test_material_with_base3d()

int test_material_with_base3d ( const std::shared_ptr< DomainBase > &  ,
std::istringstream &   
)

◆ test_mode()

void test_mode ( )
Here is the caller graph for this function:

◆ test_section()

int test_section ( const std::shared_ptr< DomainBase > &  ,
std::istringstream &  ,
unsigned   
)

◆ test_section_by_deformation_history()

int test_section_by_deformation_history ( const std::shared_ptr< DomainBase > &  ,
std::istringstream &   
)

◆ to_mat()

template<typename T >
Mat< T > Quaternion< T >::to_mat
Here is the call graph for this function:

◆ to_pseudo()

template<typename T >
Col< T > Quaternion< T >::to_pseudo
Here is the call graph for this function:

◆ to_uvec() [1/2]

template<sp_i T>
uvec to_uvec ( const suanpan::set< T > &  in)
Here is the caller graph for this function:

◆ to_uvec() [2/2]

template<sp_i T>
uvec to_uvec ( const suanpan::unordered_set< T > &  in)

◆ triangle() [1/3]

template<typename T >
Mat< T > shape::triangle ( const Col< T > &  int_pts,
unsigned  order 
)

compute the shape function or its derivative of six node triangle in global coordinate system

Template Parameters
Tdouble/float
Parameters
int_ptsglobal coordinates of integration points
ordershape function or its derivative
Returns
shape function or its derivative
Here is the caller graph for this function:

◆ triangle() [2/3]

template<typename T >
Mat< T > shape::plate::triangle ( const Col< T > &  int_pts,
unsigned  order,
unsigned  num_node,
const Mat< T > &  nodes 
)
Here is the call graph for this function:

◆ triangle() [3/3]

template<typename T >
T area::triangle ( const Mat< T > &  EC)

◆ truss()

template<typename T >
Mat< T > shape::truss ( int_pts,
unsigned  order = 0,
unsigned  num_node = 2 
)

◆ ~ExternalModule()

ExternalModule::~ExternalModule ( )

Variable Documentation

◆ library_name

const string ExternalModule::library_name