|
| ExternalModule::ExternalModule (string) |
|
| ExternalModule::ExternalModule (const ExternalModule &)=delete |
|
| ExternalModule::ExternalModule (ExternalModule &&)=delete |
|
ExternalModule & | ExternalModule::operator= (const ExternalModule &)=delete |
|
ExternalModule & | ExternalModule::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< T > | Oscillator< T >::compute_response (const T interval, const Col< T > &motion) |
|
Col< T > | Oscillator< 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 T & | Quaternion< T >::real () const |
|
const Col< T > & | Quaternion< T >::imag () const |
|
T | Quaternion< T >::norm () const |
|
Quaternion & | Quaternion< T >::normalise () |
|
Quaternion | Quaternion< T >::inv () const |
|
Quaternion | Quaternion< T >::conj () const |
|
Quaternion | Quaternion< T >::operator+ (const Quaternion &) const |
|
Quaternion & | Quaternion< T >::operator+= (const Quaternion &) |
|
Quaternion | Quaternion< T >::operator- (const Quaternion &) const |
|
Quaternion & | Quaternion< T >::operator-= (const Quaternion &) |
|
Quaternion | Quaternion< T >::operator* (const Quaternion &) const |
|
Quaternion & | Quaternion< T >::operator*= (const Quaternion &) |
|
Quaternion | Quaternion< T >::operator/ (const Quaternion &) const |
|
Quaternion & | Quaternion< T >::operator/= (const Quaternion &) |
|
void | Quaternion< T >::print () const |
|
Mat< T > | Quaternion< T >::operator* (const Mat< T > &) const |
|
Mat< T > | Quaternion< T >::to_mat () const |
|
Col< T > | Quaternion< T >::to_pseudo () const |
|
template<typename T > |
T | area::triangle (const Mat< T > &EC) |
|
template<typename T > |
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) |
|
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.