NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
|
Namespaces | |
namespace | details |
namespace | quanta |
namespace | serialization |
Typedefs | |
typedef int | comm_type |
Enumerations | |
enum | Relation { UNDEFINED_RELATION = 0 , NODE , ELEMENT , GLOBAL } |
enum | Length { LENGTH_0 = 0 , LENGTH_1 = 1 , LENGTH_2 = 2 , LENGTH_3 = 3 , LENGTH_4 = 4 , LENGTH_5 = 5 , LENTGH_6 = 6 , LENGTH_7 = 7 , LENGTH_8 = 8 , LENGTH_9 = 9 , LENGTH_10 = 10 , LENGTH_11 = 11 , LENGTH_12 = 12 , LENGTH_13 = 13 , LENGTH_14 = 14 , LENGTH_15 = 15 , LENGTH_16 = 16 , LENGTH_17 = 17 , LENGTH_18 = 18 , LENGTH_19 = 19 , LENGTH_20 = 20 , SCALAR , VECTOR , SYMMETRIC_TENSOR , FULL_TENSOR , UNDEFINED_LENGTH } |
enum | Step { UNDEFINED_STEP = 0 , STEP_N , STEP_NP1 } |
Functions | |
std::vector< int > | PackIDSpace (const std::vector< int > &raw_node_ids, int max_nodes_assigned_to_a_rank, const mpicontext &context) |
int | GetMaximumNodeId (const std::vector< int > &global_node_ids, const mpicontext &context) |
std::unique_ptr< int[]> | GetNumberOfNodesAssignedToEachRank (const std::vector< int > &global_node_ids, const mpicontext &context) |
void | EnsureCheckpoint (const mpicontext &context, const std::string &message) |
template<class Key, class Val> | |
std::vector< std::pair< Key, std::vector< Val > > > | GroupConsecutive (const std::vector< std::pair< Key, Val > > &lst) |
NIMBLE_INLINE_FUNCTION double | TriangleArea (double pt_1_x, double pt_1_y, double pt_1_z, double pt_2_x, double pt_2_y, double pt_2_z, double pt_3_x, double pt_3_y, double pt_3_z) |
NIMBLE_INLINE_FUNCTION double | PointEdgeClosestPointFindT (double const p1[], double const p2[], double const p[]) |
NIMBLE_INLINE_FUNCTION double | PointEdgeClosestPointFindDistanceSquared (double const p1[], double const p2[], double const p[], double t) |
void | ParseContactCommand (std::string const &command, std::vector< std::string > &primary_block_names, std::vector< std::string > &secondary_block_names, double &penalty_parameter) |
template<typename ArgT> | |
void | SerializeContactFaces (int num_entities, ArgT contact_entities, std::vector< char > &buffer) |
template<typename ArgT> | |
void | UnserializeContactFaces (int num_entities, ArgT contact_entities, std::vector< char > &buffer) |
std::shared_ptr< nimble::ContactManager > | GetContactManager (std::shared_ptr< ContactInterface > interface, nimble::DataManager &data_manager) |
int | LengthToInt (Length length, int dim) |
std::string | AddIntegrationPointPrefix (std::string label, int ipt_number) |
std::string | RemoveIntegrationPointPrefix (std::string label) |
bool | HasIntegrationPointPrefix (std::string label) |
int | LabelToIntegrationPointNumber (std::string label) |
std::vector< std::string > | GetComponentLabels (std::string label, Length length, int dim) |
std::string | GetComponentLabel (std::string label, Length length, int dim, int component_index, int ipt) |
Length | LabelToLength (std::string label, std::map< int, Field > const &data_fields, int dim) |
void | PopulateDiagonalPreconditioner (const CRSMatrixContainer &A, CRSMatrixContainer &M) |
bool | CG_SolveSystem (nimble::CRSMatrixContainer &A, const double *b, CGScratchSpace &cg_scratch, double *x, int &num_iterations, double cg_tol, int max_iterations) |
double | InnerProduct (unsigned int num_entries, const double *vec_1, const double *vec_2) |
double | InnerProduct (const std::vector< double > &vec_1, const std::vector< double > &vec_2) |
void | LU_Decompose (int num_entries, MatrixContainer &mat, int *index) |
void | LU_Solve (int num_entries, MatrixContainer &mat, double *vec, int *index) |
void | LU_SolveSystem (int num_entries, MatrixContainer &mat, double *vec, int *scratch) |
void | DetermineTangentMatrixNonzeroStructure (GenesisMesh const &mesh, std::vector< int > const &linear_system_node_ids, std::vector< int > &i_index, std::vector< int > &j_index) |
template void | ModelData::EmplaceBlocks< nimble::Block > (nimble::DataManager &data_manager, const std::shared_ptr< nimble::MaterialFactoryBase > &material_factory_base) |
std::string | IOFileName (std::string const &serial_name, std::string const &extension, std::string const &label, int my_rank, int num_ranks) |
void | IOFileNameThreadSafe (char const *const serial_file_name, char const *const extension, char const *const label, int my_mpi_rank, int mpi_num_ranks, int my_thread_rank, int num_threads, char *const file_name) |
std::vector< std::string > | tokenize_string (const std::string &s) |
double | string_to_double (const std::string &s) |
std::string | NimbleVersion () |
template<std::size_t N> | |
details::AXPYResult< N > | operator* (double alpha, const nimble::Viewify< N > &A) |
std::list< std::string > | split (std::string line) |
Variables | |
constexpr int | MAX_C_STR_SIZE = 256 |
typedef int nimble::comm_type |
enum nimble::Length |
enum nimble::Relation |
Enumerator | |
---|---|
UNDEFINED_RELATION | |
NODE | |
ELEMENT | |
GLOBAL |
enum nimble::Step |
Enumerator | |
---|---|
UNDEFINED_STEP | |
STEP_N | |
STEP_NP1 |
std::string nimble::AddIntegrationPointPrefix | ( | std::string | label, |
int | ipt_number ) |
bool nimble::CG_SolveSystem | ( | nimble::CRSMatrixContainer & | A, |
const double * | b, | ||
CGScratchSpace & | cg_scratch, | ||
double * | x, | ||
int & | num_iterations, | ||
double | cg_tol, | ||
int | max_iterations ) |
void nimble::DetermineTangentMatrixNonzeroStructure | ( | GenesisMesh const & | mesh, |
std::vector< int > const & | linear_system_node_ids, | ||
std::vector< int > & | i_index, | ||
std::vector< int > & | j_index ) |
void nimble::EnsureCheckpoint | ( | const mpicontext & | context, |
const std::string & | message ) |
std::string nimble::GetComponentLabel | ( | std::string | label, |
Length | length, | ||
int | dim, | ||
int | component_index, | ||
int | ipt ) |
std::vector< std::string > nimble::GetComponentLabels | ( | std::string | label, |
Length | length, | ||
int | dim ) |
std::shared_ptr< nimble::ContactManager > nimble::GetContactManager | ( | std::shared_ptr< ContactInterface > | interface, |
nimble::DataManager & | data_manager ) |
int nimble::GetMaximumNodeId | ( | const std::vector< int > & | global_node_ids, |
const mpicontext & | context ) |
std::unique_ptr< int[]> nimble::GetNumberOfNodesAssignedToEachRank | ( | const std::vector< int > & | global_node_ids, |
const mpicontext & | context ) |
std::vector< std::pair< Key, std::vector< Val > > > nimble::GroupConsecutive | ( | const std::vector< std::pair< Key, Val > > & | lst | ) |
bool nimble::HasIntegrationPointPrefix | ( | std::string | label | ) |
|
inline |
|
inline |
std::string nimble::IOFileName | ( | std::string const & | serial_name, |
std::string const & | extension, | ||
std::string const & | label, | ||
int | my_rank, | ||
int | num_ranks ) |
void nimble::IOFileNameThreadSafe | ( | char const *const | serial_file_name, |
char const *const | extension, | ||
char const *const | label, | ||
int | my_mpi_rank, | ||
int | mpi_num_ranks, | ||
int | my_thread_rank, | ||
int | num_threads, | ||
char *const | file_name ) |
int nimble::LabelToIntegrationPointNumber | ( | std::string | label | ) |
Length nimble::LabelToLength | ( | std::string | label, |
std::map< int, Field > const & | data_fields, | ||
int | dim ) |
int nimble::LengthToInt | ( | Length | length, |
int | dim ) |
void nimble::LU_Decompose | ( | int | num_entries, |
MatrixContainer & | mat, | ||
int * | index ) |
void nimble::LU_Solve | ( | int | num_entries, |
MatrixContainer & | mat, | ||
double * | vec, | ||
int * | index ) |
void nimble::LU_SolveSystem | ( | int | num_entries, |
MatrixContainer & | mat, | ||
double * | vec, | ||
int * | scratch ) |
template void nimble::ModelData::EmplaceBlocks< nimble::Block > | ( | nimble::DataManager & | data_manager, |
const std::shared_ptr< nimble::MaterialFactoryBase > & | material_factory_base ) |
|
inline |
details::AXPYResult< N > nimble::operator* | ( | double | alpha, |
const nimble::Viewify< N > & | A ) |
std::vector< int > nimble::PackIDSpace | ( | const std::vector< int > & | raw_node_ids, |
int | max_nodes_assigned_to_a_rank, | ||
const mpicontext & | context ) |
void nimble::ParseContactCommand | ( | std::string const & | command, |
std::vector< std::string > & | primary_block_names, | ||
std::vector< std::string > & | secondary_block_names, | ||
double & | penalty_parameter ) |
NIMBLE_INLINE_FUNCTION double nimble::PointEdgeClosestPointFindDistanceSquared | ( | double const | p1[], |
double const | p2[], | ||
double const | p[], | ||
double | t ) |
NIMBLE_INLINE_FUNCTION double nimble::PointEdgeClosestPointFindT | ( | double const | p1[], |
double const | p2[], | ||
double const | p[] ) |
void nimble::PopulateDiagonalPreconditioner | ( | const CRSMatrixContainer & | A, |
CRSMatrixContainer & | M ) |
A | Input sparse matrix |
M | Diagonal preconditioner (mathematically M = (diag(A))^{-1}) |
std::string nimble::RemoveIntegrationPointPrefix | ( | std::string | label | ) |
void nimble::SerializeContactFaces | ( | int | num_entities, |
ArgT | contact_entities, | ||
std::vector< char > & | buffer ) |
std::list< std::string > nimble::split | ( | std::string | line | ) |
|
inline |
|
inline |
NIMBLE_INLINE_FUNCTION double nimble::TriangleArea | ( | double | pt_1_x, |
double | pt_1_y, | ||
double | pt_1_z, | ||
double | pt_2_x, | ||
double | pt_2_y, | ||
double | pt_2_z, | ||
double | pt_3_x, | ||
double | pt_3_y, | ||
double | pt_3_z ) |
void nimble::UnserializeContactFaces | ( | int | num_entities, |
ArgT | contact_entities, | ||
std::vector< char > & | buffer ) |
|
constexpr |