suanPan
|
Namespaces | |
namespace | suanpan |
namespace | interpolation |
namespace | area |
namespace | shape |
namespace | tensor |
namespace | transform |
Concepts | |
concept | Differentiable |
Functions | |
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 | |
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 | |
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 |
Variables | |
const string | ExternalModule::library_name |
|
strong |
|
strong |
|
static |
|
static |
|
static |
void argument_parser | ( | int | argc, |
char ** | argv | ||
) |
void cli_mode | ( | const shared_ptr< Bead > & | model | ) |
|
inline |
|
inline |
Quaternion< T > Quaternion< T >::conj | ( | ) | const |
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" |
||
) |
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" |
||
) |
int execute_command | ( | istringstream & | command | ) |
|
delete |
|
delete |
|
explicit |
fs::path get_history_path | ( | ) |
const Col< T > & Quaternion< T >::imag | ( | ) | const |
void IntegrationPlan::generate< IntegrationType::CHEBYSHEV > | ( | unsigned | D, |
unsigned | O | ||
) |
void IntegrationPlan::generate< IntegrationType::GAUSS > | ( | unsigned | D, |
unsigned | O | ||
) |
void IntegrationPlan::generate< IntegrationType::HERMITE > | ( | unsigned | D, |
unsigned | O | ||
) |
void IntegrationPlan::generate< IntegrationType::IRONS > | ( | unsigned | D, |
unsigned | O | ||
) |
void IntegrationPlan::generate< IntegrationType::LAGUERRE > | ( | unsigned | D, |
unsigned | O | ||
) |
void IntegrationPlan::generate< IntegrationType::LOBATTO > | ( | unsigned | D, |
unsigned | O | ||
) |
void IntegrationPlan::generate< IntegrationType::RADAU > | ( | unsigned | D, |
unsigned | O | ||
) |
void IntegrationPlan::generate< IntegrationType::TRIANGLE > | ( | unsigned | D, |
unsigned | O | ||
) |
Quaternion< T > Quaternion< T >::inv | ( | ) | const |
bool ExternalModule::locate_c_module | ( | const string & | module_name | ) |
bool ExternalModule::locate_cpp_module | ( | const string & | module_name | ) |
void ExternalModule::new_adapter | ( | unique_ptr< Amplitude > & | , |
istringstream & | |||
) | const |
void ExternalModule::new_adapter | ( | 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 > & | return_obj, |
istringstream & | command | ||
) | const |
void ExternalModule::new_adapter | ( | unique_ptr< Modifier > & | , |
istringstream & | |||
) | const |
void ExternalModule::new_adapter | ( | unique_ptr< Section > & | , |
istringstream & | |||
) | const |
void ExternalModule::new_adapter | ( | unique_ptr< Solver > & | , |
istringstream & | |||
) | const |
void ExternalModule::new_object | ( | unique_ptr< Amplitude > & | return_obj, |
istringstream & | command | ||
) | const |
void ExternalModule::new_object | ( | unique_ptr< Constraint > & | return_obj, |
istringstream & | command | ||
) | const |
void ExternalModule::new_object | ( | unique_ptr< Element > & | return_obj, |
istringstream & | command | ||
) | const |
void ExternalModule::new_object | ( | unique_ptr< Load > & | return_obj, |
istringstream & | command | ||
) | const |
void ExternalModule::new_object | ( | unique_ptr< Material > & | return_obj, |
istringstream & | command | ||
) | const |
void ExternalModule::new_object | ( | unique_ptr< Modifier > & | return_obj, |
istringstream & | command | ||
) | const |
void ExternalModule::new_object | ( | unique_ptr< Section > & | return_obj, |
istringstream & | command | ||
) | const |
void ExternalModule::new_object | ( | unique_ptr< Solver > & | return_obj, |
istringstream & | command | ||
) | const |
T Quaternion< T >::norm | ( | ) | const |
Quaternion< T > & Quaternion< T >::normalise | ( | ) |
bool normalise_command | ( | string & | all_line, |
string & | command_line | ||
) |
|
static |
Mat< T > Quaternion< T >::operator* | ( | const Mat< T > & | I | ) | const |
Quaternion< T > Quaternion< T >::operator* | ( | const Quaternion< T > & | B | ) | const |
Quaternion< T > & Quaternion< T >::operator*= | ( | const Quaternion< T > & | B | ) |
Quaternion< T > Quaternion< T >::operator+ | ( | const Quaternion< T > & | B | ) | const |
Quaternion< T > & Quaternion< T >::operator+= | ( | const Quaternion< T > & | B | ) |
Quaternion< T > Quaternion< T >::operator- | ( | const Quaternion< T > & | B | ) | const |
Quaternion< T > & Quaternion< T >::operator-= | ( | const Quaternion< T > & | B | ) |
Quaternion< T > Quaternion< T >::operator/ | ( | const Quaternion< T > & | B | ) | const |
Quaternion< T > & Quaternion< T >::operator/= | ( | const Quaternion< T > & | B | ) |
|
delete |
|
delete |
|
inline |
void Quaternion< T >::print | ( | ) | const |
void print_helper | ( | ) |
void print_version | ( | ) |
int process_command | ( | const shared_ptr< Bead > & | model, |
istringstream & | command | ||
) |
int process_file | ( | const shared_ptr< Bead > & | model, |
const char * | file_name | ||
) |
Quaternion< T >::Quaternion | ( | ) |
Quaternion< T >::Quaternion | ( | T | R, |
Col< T > && | I | ||
) |
Quaternion< T >::Quaternion | ( | T | R, |
const Col< T > & | I | ||
) |
Quaternion< T >::Quaternion | ( | T | R, |
T | I, | ||
T | J, | ||
T | K | ||
) |
const T & Quaternion< T >::real | ( | ) | const |
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
damping_ratio | damping ratio |
interval | sampling interval of the target ground motion |
motion | target ground motion stored in one column |
period | periods where response spectrum needs to be computed |
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
damping_ratio | damping ratio of the system |
interval | time step size |
freq | frequency of the system (Hz) |
motion | acceleration record |
auto sort_color_metis | ( | suanpan::graph< T > & | element_register, |
const int | num_color, | ||
const char | method | ||
) |
std::vector< std::vector< T > > sort_color_mis | ( | const suanpan::graph< T > & | node_register | ) |
std::vector< std::vector< T > > sort_color_wp | ( | const suanpan::graph< T > & | node_register | ) |
Get the size of the square matrix.
Collect the number of degree of each node.
uvec sort_rcm | ( | const Mat< eT > & | MEAT | ) |
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.
uvec sort_rcm | ( | const std::vector< suanpan::unordered_set< uword > > & | adjacency | ) |
uvec sort_rcm | ( | const std::vector< uvec > & | A, |
const uvec & | E | ||
) |
uvec sort_rcm | ( | triplet_form< dt, it > & | triplet_mat | ) |
int test_material | ( | const std::shared_ptr< DomainBase > & | , |
std::istringstream & | , | ||
unsigned | |||
) |
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_material_with_base3d | ( | const std::shared_ptr< DomainBase > & | , |
std::istringstream & | |||
) |
|
extern |
int test_section | ( | const std::shared_ptr< DomainBase > & | , |
std::istringstream & | , | ||
unsigned | |||
) |
int test_section_by_deformation_history | ( | const std::shared_ptr< DomainBase > & | , |
std::istringstream & | |||
) |
Mat< T > Quaternion< T >::to_mat | ( | ) | const |
Col< T > Quaternion< T >::to_pseudo | ( | ) | const |
uvec to_uvec | ( | const suanpan::set< T > & | in | ) |
uvec to_uvec | ( | const suanpan::unordered_set< T > & | in | ) |
ExternalModule::~ExternalModule | ( | ) |
const string ExternalModule::library_name |