CArl
Code Arlequin / C++ implementation
|
Classes | |
class | assemble_coupling_matrices |
struct | coupling_assemble_coupling_input_params |
Structure containing the parameters for the construction of the coupling matrices. More... | |
class | coupling_matrices_3 |
struct | feti_iterate_params |
Structure containing the parameters for the setup initialization of the FETI solver. More... | |
class | FETI_Operations |
Class containing the operations needed for the FETI solver. More... | |
struct | feti_set_sol_params |
Structure containing the parameters for the setup initialization of the FETI solver. More... | |
struct | feti_setup_finish_params |
Structure containing the parameters for the setup initialization of the FETI solver. More... | |
struct | feti_setup_init_params |
Structure containing the parameters for the setup initialization of the FETI solver. More... | |
class | Intersection_Search |
Class containing the structure needed to find all the intersections between two meshes, inside the coupling region mesh. More... | |
class | Intersection_Tools |
Class with a series of methods to find the intersections between libMesh's elements, using CGAL internally. More... | |
struct | IntersectionData |
struct | libmesh_apply_solution_input_params |
class | libMesh_fe_addresses_3 |
struct | libmesh_solve_linear_system_input_params |
class | Mesh_Intersection |
Class used to construct the intersection meshes. More... | |
class | Mesh_restriction |
Class used to build a restriction of a parent mesh to the coupling region. More... | |
struct | parallel_intersection_params |
Structure containing the parameters for the parallel intersection search test program (source: CArl_build_intersections.cpp) More... | |
class | Patch_construction |
Class used to build a mesh patch from a parent mesh and an coupling mesh element. More... | |
struct | PointHash_3D |
struct | PointHash_3D_Equal |
class | Solver_Files_Setup |
class | Stitch_Meshes |
Class used to stitch together different meshes. More... | |
class | weight_parameter_function |
Enumerations | |
enum | ClusterSchedulerType { LOCAL = 0, PBS = 1, SLURM = 2 } |
enum | ExtSolverType { LIBMESH_LINEAR = 0, DUMMY = 1 } |
enum | MediatorType { USE_MACRO = 0, USE_MICRO = 1, USE_EXTERNAL = 2 } |
enum | BaseCGPrecondType { NO_PRECONDITIONER = 0, COUPLING_OPERATOR = 1, COUPLING_JACOBI = 2 } |
enum | IterationStatus { ITERATING = 0, DIVERGED = 1, CONVERGED = 2 } |
enum | IntersectionMeshingMethod { LIBMESH_TETGEN = 0, CGAL = 1 } |
enum | SearchMethod { BRUTE = 0, FRONT = 1, BOTH = 2 } |
enum | RBModesSystem { MACRO = 0, MICRO = 1 } |
Functions | |
void | get_assemble_coupling_input_params (GetPot &field_parser, coupling_assemble_coupling_input_params &input_params) |
Parser function for the construction of the coupling matrices. More... | |
void | get_input_params (GetPot &field_parser, feti_iterate_params &input_params) |
Parser function for the coupled solver test programs. More... | |
void | get_input_params (GetPot &field_parser, feti_set_sol_params &input_params) |
Parser function for the coupled solver test programs. More... | |
void | get_input_params (GetPot &field_parser, feti_setup_finish_params &input_params) |
Parser function for the coupled solver test programs. More... | |
void | get_input_params (GetPot &field_parser, feti_setup_init_params &input_params) |
Parser function for the coupled solver test programs. More... | |
void | get_intersection_input_params (GetPot &field_parser, parallel_intersection_params &input_params) |
Parser function for the parallel intersection search program (source: CArl_build_intersections.cpp) More... | |
void | get_input_params (GetPot &field_parser, libmesh_solve_linear_system_input_params &input_params) |
Parser function for the coupled solver test programs. More... | |
void | print_input_params (const std::string &output_filename, libmesh_solve_linear_system_input_params &input_params) |
Function used to generate a solver input file from "input_params". More... | |
void | get_input_params (GetPot &field_parser, libmesh_apply_solution_input_params &input_params) |
Parser function for mesh deformation (apply solution) programs. More... | |
std::string | ClusterSchedulerType_to_string (ClusterSchedulerType input) |
std::string | BaseCGPrecondType_to_string (BaseCGPrecondType input) |
std::string | ExtSolverType_to_string (ExtSolverType input) |
std::string | exec_command (const std::string &cmd) |
void | invert_index_unordered_map (const std::unordered_map< int, int > &input_map, std::unordered_map< int, int > &output_map) |
template<typename T > | |
void | jump_lines (T &filestream, unsigned int numberOfLines=1) |
int | voigt_index_converter (int aaa, int bbb) |
void | print_stats_to_file (std::vector< double > &vec_data, const std::string filename) |
template<typename Sys > | |
void | reduced_system_init (Sys &system_input) |
void | set_weight_function_domain_idx (std::string &filename, int &domain_Idx_BIG, int &nb_of_domain_Idx_micro, std::vector< int > &domain_Idx_micro, std::vector< int > &domain_Idx_coupling) |
void | build_intersection_and_restriction_tables (const libMesh::Parallel::Communicator &WorldComm, const std::string &intersection_full_table_Filename, const std::string &equivalence_table_A_Filename, const std::string &equivalence_table_B_Filename, std::vector< carl::IntersectionData > &intersection_full_table, std::unordered_map< int, int > &equivalence_table_A_to_R_A, std::unordered_map< int, int > &equivalence_table_B_to_R_B, std::unordered_map< int, int > &equivalence_table_R_A_to_A, std::unordered_map< int, int > &equivalence_table_R_B_to_B) |
void | generate_intersection_tables_partial (std::string &intersection_table_restrict_B_Filename, std::string &intersection_table_I_Filename, std::unordered_map< int, int > &mesh_restrict_ElemMap, std::unordered_map< int, int > &mesh_micro_ElemMap, std::unordered_map< int, int > &mesh_inter_ElemMap, std::vector< std::pair< int, int > > &intersection_table_restrict_B, std::unordered_multimap< int, int > &intersection_table_I) |
void | generate_intersection_tables_full (std::string &equivalence_table_restrict_A_Filename, std::string &intersection_table_restrict_B_Filename, std::string &intersection_table_I_Filename, std::unordered_map< int, int > &mesh_restrict_ElemMap, std::unordered_map< int, int > &mesh_micro_ElemMap, std::unordered_map< int, int > &mesh_BIG_ElemMap, std::unordered_map< int, int > &mesh_inter_ElemMap, std::unordered_map< int, int > &equivalence_table_restrict_A, std::vector< std::pair< int, int > > &intersection_table_restrict_B, std::unordered_multimap< int, int > &intersection_table_I) |
void | set_equivalence_tables (const libMesh::Parallel::Communicator &WorldComm, const std::string &equivalence_table_A_Filename, const std::string &equivalence_table_B_Filename, std::unordered_map< int, int > &equivalence_table_A_to_R_A, std::unordered_map< int, int > &equivalence_table_B_to_R_B, std::unordered_map< int, int > &equivalence_table_R_A_to_A, std::unordered_map< int, int > &equivalence_table_R_B_to_B) |
void | set_restricted_intersection_pairs_table (const std::unordered_map< int, std::pair< int, int > > &full_intersection_pairs_map, const std::unordered_map< int, int > &equivalence_table_A_to_R_A, const std::unordered_map< int, int > &equivalence_table_B_to_R_B, std::unordered_map< int, std::pair< int, int > > &full_intersection_restricted_pairs_map) |
void | set_full_intersection_tables (const libMesh::Parallel::Communicator &WorldComm, const std::string &intersection_full_table_Filename, std::unordered_map< int, std::pair< int, int > > &full_intersection_pairs_map, std::unordered_map< int, int > &full_intersection_meshI_to_inter_map) |
void | set_intersection_tables (const libMesh::Parallel::Communicator &WorldComm, const libMesh::Mesh &mesh_intersection, const std::string &intersection_full_table_Filename, const std::string &equivalence_table_A_Filename, const std::string &equivalence_table_B_Filename, const std::unordered_map< int, int > &equivalence_table_A_to_R_A, const std::unordered_map< int, int > &equivalence_table_B_to_R_B, std::unordered_map< int, std::pair< int, int > > &full_intersection_pairs_map, std::unordered_map< int, std::pair< int, int > > &full_intersection_restricted_pairs_map, std::unordered_map< int, int > &local_intersection_meshI_to_inter_map) |
void | read_local_intersection_tables (const libMesh::Parallel::Communicator &WorldComm, const std::string &intersection_local_table_Filename, std::unordered_map< int, std::pair< int, int > > &local_intersection_pairs_map, std::unordered_map< int, int > &local_intersection_meshI_to_inter_map) |
void | set_local_intersection_tables (const libMesh::Parallel::Communicator &WorldComm, const libMesh::Mesh &mesh_intersection, const std::string &intersection_local_table_Filename, const std::string &equivalence_table_A_Filename, const std::string &equivalence_table_B_Filename, const std::unordered_map< int, int > &equivalence_table_A_to_R_A, const std::unordered_map< int, int > &equivalence_table_B_to_R_B, std::unordered_map< int, std::pair< int, int > > &local_intersection_pairs_map, std::unordered_map< int, std::pair< int, int > > &local_intersection_restricted_pairs_map, std::unordered_map< int, int > &local_intersection_meshI_to_inter_map) |
void | set_global_mediator_system_intersection_lists (const libMesh::Parallel::Communicator &WorldComm, const std::string &intersection_global_table_Filename, const std::unordered_map< int, int > &equivalence_table_system_to_mediator, const std::unordered_map< int, int > &equivalence_table_mediator_to_system, std::unordered_multimap< int, int > &inter_mediator_A, std::unordered_multimap< int, int > &inter_mediator_B) |
void | repartition_system_meshes (const libMesh::Parallel::Communicator &WorldComm, libMesh::Mesh &mesh_input, libMesh::Mesh &mesh_intersect, std::unordered_map< int, std::pair< int, int > > &local_intersection_pairs_map, bool bUseSecond=true) |
void | broadcast_index_unordered_map (std::unordered_map< int, int > &index_map, const libMesh::Parallel::Communicator &CommComm, int origin_rank=0) |
template<typename T > | |
void | MPI_reduce_vector (std::vector< T > &r, int root, const libMesh::Parallel::Communicator &Comm) |
void | lump_matrix (libMesh::PetscMatrix< libMesh::Number > &matrixInput, libMesh::PetscMatrix< libMesh::Number > &matrixOutput) |
void | lump_matrix_and_invert (libMesh::PetscMatrix< libMesh::Number > &matrixInput, libMesh::PetscMatrix< libMesh::Number > &matrixOutput) |
void | lump_matrix_and_invert (libMesh::PetscMatrix< libMesh::Number > &matrixInput, libMesh::PetscVector< libMesh::Number > &vecOutput) |
void | print_matrix (libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix) |
void | print_matrix_dim (libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix, bool bDetailed=false) |
void | print_matrix_info (libMesh::PetscMatrix< libMesh::Number > &InputMatrix, std::ostream &os=libMesh::out) |
void | print_matrix_col_line_sum (libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix, const std::string name_base) |
void | print_matrix_matlab (libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix, const std::string name_base) |
void | solve_linear_PETSC (libMesh::PetscMatrix< libMesh::Number > &A, libMesh::PetscVector< libMesh::Number > &b, libMesh::PetscVector< libMesh::Number > &x, KSP &ksp, PC &pc) |
void | check_coupling_matrix (libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix, libMesh::Mesh &IntersectionMesh, libMesh::Real CouplingScale, const std::string matrixtype, int n_var=3) |
void | write_PETSC_vector (libMesh::PetscVector< libMesh::Number > &input_vec, const std::string &filename, int dim=1) |
void | read_PETSC_vector (libMesh::PetscVector< libMesh::Number > &input_vec, const std::string &filename) |
void | print_PETSC_vector (libMesh::PetscVector< libMesh::Number > &input_vec, const std::string &filename) |
void | write_PETSC_vector (Vec input_vec, const std::string &filename, int rank, MPI_Comm comm=PETSC_COMM_WORLD, int dim=1) |
void | read_PETSC_vector (Vec input_vec, const std::string &filename, MPI_Comm comm=PETSC_COMM_WORLD) |
void | write_PETSC_matrix (Mat input_mat, const std::string &filename, int rank, MPI_Comm comm=PETSC_COMM_WORLD, int dim=1) |
void | write_PETSC_matrix (libMesh::PetscMatrix< libMesh::Number > &input_mat, const std::string &filename, int dim=1) |
void | read_PETSC_matrix (Mat input_mat, const std::string &filename, MPI_Comm comm=PETSC_COMM_WORLD) |
void | read_PETSC_matrix (libMesh::PetscMatrix< libMesh::Number > &input_mat, const std::string &filename) |
void | write_PETSC_vector_MATLAB (Vec input_vec, const std::string &filename, MPI_Comm comm=PETSC_COMM_WORLD) |
void | write_PETSC_matrix_MATLAB (Mat input_mat, const std::string &filename, MPI_Comm comm=PETSC_COMM_WORLD) |
void | attach_rigid_body_mode_vectors (libMesh::PetscMatrix< libMesh::Number > &mat_sys, const std::string &filename_base, int nb_of_vecs, int dimension) |
void | create_PETSC_dense_matrix_from_vectors (const Vec *vecs_in, int nb_vecs, Mat &matrix_out) |
void | PETSC_invert_dense_matrix (Mat &matrix_in, Mat &matrix_out) |
void | PETSC_MatMultScale_Bcast (Mat mat_seq, Vec vec_seq_in, Vec vec_seq_out, double a_const) |
Enumerator | |
---|---|
NO_PRECONDITIONER | |
COUPLING_OPERATOR | |
COUPLING_JACOBI |
Definition at line 35 of file common_enums.h.
Enumerator | |
---|---|
LOCAL | |
PBS | |
SLURM |
Definition at line 14 of file common_enums.h.
enum carl::ExtSolverType |
Enumerator | |
---|---|
LIBMESH_LINEAR | |
DUMMY |
Definition at line 22 of file common_enums.h.
Enumerator | |
---|---|
LIBMESH_TETGEN | |
CGAL |
Definition at line 47 of file common_enums.h.
Enumerator | |
---|---|
ITERATING | |
DIVERGED | |
CONVERGED |
Definition at line 41 of file common_enums.h.
enum carl::MediatorType |
Enumerator | |
---|---|
USE_MACRO | |
USE_MICRO | |
USE_EXTERNAL |
Definition at line 28 of file common_enums.h.
enum carl::RBModesSystem |
Enumerator | |
---|---|
MACRO | |
MICRO |
Definition at line 61 of file common_enums.h.
enum carl::SearchMethod |
Enumerator | |
---|---|
BRUTE | |
FRONT | |
BOTH |
Definition at line 54 of file common_enums.h.
void carl::attach_rigid_body_mode_vectors | ( | libMesh::PetscMatrix< libMesh::Number > & | mat_sys, |
const std::string & | filename_base, | ||
int | nb_of_vecs, | ||
int | dimension | ||
) |
Definition at line 383 of file PETSC_matrix_operations.cpp.
std::string carl::BaseCGPrecondType_to_string | ( | BaseCGPrecondType | input | ) |
Definition at line 27 of file common_functions.cpp.
void carl::broadcast_index_unordered_map | ( | std::unordered_map< int, int > & | index_map, |
const libMesh::Parallel::Communicator & | CommComm, | ||
int | origin_rank = 0 |
||
) |
Definition at line 3 of file mpi_carl_tools.cpp.
void carl::build_intersection_and_restriction_tables | ( | const libMesh::Parallel::Communicator & | WorldComm, |
const std::string & | intersection_full_table_Filename, | ||
const std::string & | equivalence_table_A_Filename, | ||
const std::string & | equivalence_table_B_Filename, | ||
std::vector< carl::IntersectionData > & | intersection_full_table, | ||
std::unordered_map< int, int > & | equivalence_table_A_to_R_A, | ||
std::unordered_map< int, int > & | equivalence_table_B_to_R_B, | ||
std::unordered_map< int, int > & | equivalence_table_R_A_to_A, | ||
std::unordered_map< int, int > & | equivalence_table_R_B_to_B | ||
) |
Definition at line 182 of file mesh_tables.cpp.
void carl::check_coupling_matrix | ( | libMesh::PetscMatrix< libMesh::Number > & | CouplingTestMatrix, |
libMesh::Mesh & | IntersectionMesh, | ||
libMesh::Real | CouplingScale, | ||
const std::string | matrixtype, | ||
int | n_var = 3 |
||
) |
Definition at line 284 of file PETSC_matrix_operations.cpp.
std::string carl::ClusterSchedulerType_to_string | ( | ClusterSchedulerType | input | ) |
Definition at line 9 of file common_functions.cpp.
void carl::create_PETSC_dense_matrix_from_vectors | ( | const Vec * | vecs_in, |
int | nb_vecs, | ||
Mat & | matrix_out | ||
) |
Definition at line 456 of file PETSC_matrix_operations.cpp.
std::string carl::exec_command | ( | const std::string & | cmd | ) |
Definition at line 60 of file common_functions.cpp.
std::string carl::ExtSolverType_to_string | ( | ExtSolverType | input | ) |
Definition at line 45 of file common_functions.cpp.
void carl::generate_intersection_tables_full | ( | std::string & | equivalence_table_restrict_A_Filename, |
std::string & | intersection_table_restrict_B_Filename, | ||
std::string & | intersection_table_I_Filename, | ||
std::unordered_map< int, int > & | mesh_restrict_ElemMap, | ||
std::unordered_map< int, int > & | mesh_micro_ElemMap, | ||
std::unordered_map< int, int > & | mesh_BIG_ElemMap, | ||
std::unordered_map< int, int > & | mesh_inter_ElemMap, | ||
std::unordered_map< int, int > & | equivalence_table_restrict_A, | ||
std::vector< std::pair< int, int > > & | intersection_table_restrict_B, | ||
std::unordered_multimap< int, int > & | intersection_table_I | ||
) |
Definition at line 104 of file mesh_tables.cpp.
void carl::generate_intersection_tables_partial | ( | std::string & | intersection_table_restrict_B_Filename, |
std::string & | intersection_table_I_Filename, | ||
std::unordered_map< int, int > & | mesh_restrict_ElemMap, | ||
std::unordered_map< int, int > & | mesh_micro_ElemMap, | ||
std::unordered_map< int, int > & | mesh_inter_ElemMap, | ||
std::vector< std::pair< int, int > > & | intersection_table_restrict_B, | ||
std::unordered_multimap< int, int > & | intersection_table_I | ||
) |
Definition at line 54 of file mesh_tables.cpp.
void carl::get_assemble_coupling_input_params | ( | GetPot & | field_parser, |
coupling_assemble_coupling_input_params & | input_params | ||
) |
Parser function for the construction of the coupling matrices.
Required parameters:
MeshA
, -mA
or --meshA
: path to the mesh A.MeshB
, -mB
or --meshB
: path to the mesh B.InterBase
, -mI
or --meshI
: common path to the intersection meshes and tables.CouplingWidth
or --ce
: width of the coupling region (same unit as the meshes, CouplingRigidity
or --ck
: rigidity used for the coupling matrix (in MPa, if mm was used for the meshes, Optional parameters:
OutputFolder
or --output
: base of the output folder. Default: "".Mesh_A_Restriction
, -mAR
or --meshAR
: path to the restricted mesh A (formed by elements of the mesh A intersecting the coupling region). Default: [InterBase]_A_restriction.msh
.Mesh_B_Restriction
, -mBR
or --meshBR
: path to the restricted mesh B (formed by elements of the mesh A intersecting the coupling region). Default: [InterBase]_B_restriction.msh
.Mesh_A_RestrictionEquivalenceTable
or --tableRA
: path to the equivalence table between the mesh A and its restriction. Default: [InterBase]_A_restriction_restrict.dat
.Mesh_B_RestrictionEquivalenceTable
or --tableRB
: path to the equivalence table between the mesh B and its restriction. Default: [InterBase]_B_restriction_restrict.dat
.MediatorMesh
: choice of the mediator mesh. Values: UseRestricted_A
or UseRestricted_B
. Default: UseRestricted_A
. Definition at line 13 of file carl_assemble_coupling_input_parser.cpp.
void carl::get_input_params | ( | GetPot & | field_parser, |
libmesh_solve_linear_system_input_params & | input_params | ||
) |
Parser function for the coupled solver test programs.
Required parameters:
SysMatrix
: path to the system matrix file.SysRHSVector
: path to the system RHS vector file.OutputBase
: output filename base.Optional parameters:
SysEps
: relative convergence parameter. Default: 1e-5.SysIterDiv
: maximum number of iterations. Default: 1e3.RBVectorBase
: filename base to the rigid body mode vectors. The program expects that these vectors will be named as [RBVectorBase]_rb_vector_XYZ_n_[NbOfRBVectors].petscvec
, where XYZ
is an integer index going from 0
to NbOfRBVectors - 1
. Setting this parameter sets bUseRBVectors
to true
- else, it is set to false
.NbOfRBVectors
: number of RB mode vectors. Default: 6. Definition at line 12 of file libmesh_solve_linear_system_input_parser.cpp.
void carl::get_input_params | ( | GetPot & | field_parser, |
feti_setup_finish_params & | input_params | ||
) |
Parser function for the coupled solver test programs.
Required parameters:
ClusterSchedulerType
: scheduler type. Values: LOCAL, PBS or SLURM (code not implemented for the later yet, LOCAL
runs the code without a scheduler).ScratchFolderPath
: path to the folder where the temporary files used by the coupled solver will be saved.CouplingMatricesFolder
: path to the folder containing the coupling matrices.FETI / CG optional parameters:
CGPreconditionerType
: CG preconditioner type. Values: "NONE", "Coupling_operator" or "Coupling_operator_jacobi".Boolean flags:
UseRigidBodyModesB
: use the rigid body modes for system B.Rigid body mode parameters (only read if UseRigidBodyModesB
is used):
RBVectorBase
: filename base of the rigid body modes vectors.NbOfRBVectors
: number of RB mode vectors. Default: 6. Definition at line 13 of file carl_feti_setup_finish_input_parser.cpp.
void carl::get_input_params | ( | GetPot & | field_parser, |
feti_setup_init_params & | input_params | ||
) |
Parser function for the coupled solver test programs.
Required parameters:
ClusterSchedulerType
: scheduler type. Values: LOCAL, PBS or SLURM (code not implemented for the later yet, LOCAL
runs the code without a scheduler).ExtSolverA
: command line for the external solver for system A.ExtSolverB
: command line for the external solver for system B.ExtSolverAType
: type of external solver used for system A. Values: LIBMESH_LINEAR
.ExtSolverBType
: type of external solver used for system B. Values: LIBMESH_LINEAR
.ExtSolverAInput
: path to a file containing the input parameters of the external solve for system A.ExtSolverBInput
: path to a file containing the input parameters of the external solve for system B.ScratchFolderPath
: path to the folder where the temporary files used by the coupled solver will be saved.CouplingMatricesFolder
: path to the folder containing the coupling matrices.OutputFolder
: path to the coupled solution folder.Boolean flags:
UseRigidBodyModesB
: use the rigid body modes for system B.Rigid body mode parameters (only read if UseRigidBodyModesB
is used):
ExtForceSystemB
: path to the vector containing the external forces for the system B.RBVectorBase
: filename base of the rigid body modes vectors.NbOfRBVectors
: number of RB mode vectors. Default: 6.Optional parameters:
ScriptFile
: path to the file used to generate the scripts, required if PBS or SLURM is used for the scheduler.CGPreconditionerType
: CG preconditioner type. Values: "NONE", "Coupling_operator" or "Coupling_operator_jacobi". Default: "Coupling_operator".CoupledConvAbs
: CG absolute convergence on the residual. Default: 1e-20.CoupledConvRel
: CG relative convergence on the residual. Default: 1e-5.CoupledCorrConvRel
: CG relative convergence on the rigid body corrections. Default: 1e-6.CoupledDiv
: CG residual divergence parameter. Default: 100000.CoupledIterMax
: CG maximum number of iterations. Default: 1000. Definition at line 13 of file carl_feti_setup_init_input_parser.cpp.
void carl::get_input_params | ( | GetPot & | field_parser, |
feti_iterate_params & | input_params | ||
) |
Parser function for the coupled solver test programs.
Required parameters:
ClusterSchedulerType
: scheduler type. Values: LOCAL, PBS or SLURM (code not implemented for the later yet, LOCAL
runs the code without a scheduler).ScratchFolderPath
: path to the folder where the temporary files used by the coupled solver will be saved.CouplingMatricesFolder
: path to the folder containing the coupling matrices.Boolean flags:
UseRigidBodyModesB
: use the rigid body modes for system B.Rigid body mode parameters (only read if UseRigidBodyModesB
is used):
ExtForceSystemB
: path to the vector containing the external forces for the system B.RBVectorBase
: filename base of the rigid body modes vectors.Optional parameters:
CGPreconditionerType
: CG preconditioner type. Values: "NONE", "Coupling_operator" or "Coupling_operator_jacobi". Default: "Coupling_operator".CoupledConvAbs
: CG absolute convergence on the residual. Default: 1e-20.CoupledConvRel
: CG relative convergence on the residual. Default: 1e-5.CoupledCorrConvRel
: CG relative convergence on the rigid body corrections. Default: 1e-6.CoupledDiv
: CG residual divergence parameter. Default: 100000.CoupledIterMax
: CG maximum number of iterations. Default: 1000. Definition at line 13 of file carl_feti_iterate_input_parser.cpp.
void carl::get_input_params | ( | GetPot & | field_parser, |
feti_set_sol_params & | input_params | ||
) |
Parser function for the coupled solver test programs.
Required parameters:
ScratchFolderPath
: path to the folder where the temporary files used by the coupled solver will be saved.OutputFolder
: path to the coupled outup folder.Boolean flags:
UseRigidBodyModesB
: use the rigid body modes for system B. Definition at line 14 of file carl_feti_set_sol_input_parser.cpp.
void carl::get_input_params | ( | GetPot & | field_parser, |
libmesh_apply_solution_input_params & | input_params | ||
) |
Parser function for mesh deformation (apply solution) programs.
Required parameters:
InputVector
or --input-vec
: path to the input vector containing the displacements.InputMesh
or --input-mesh
: path to the mesh that will be deformed.PhysicalParameters
or --physical-params
: physical parameters file.OutputMesh
or --output-mesh
: path to the output mesh. Definition at line 12 of file libmesh_apply_solution_input_parser.cpp.
void carl::get_intersection_input_params | ( | GetPot & | field_parser, |
parallel_intersection_params & | input_params | ||
) |
Parser function for the parallel intersection search program (source: CArl_build_intersections.cpp)
Required parameters:
MeshA
, -mA
or --meshA
: path to the mesh A.MeshB
, -mB
or --meshB
: path to the mesh B.MeshC
, -mC
or --meshC
: path to the coupling mesh C.Optional parameters:
OutputBase
, -mO
or --output
: base of the output files (including folders). Default: test_inter
.MeshingMethod
or --meshingMethodType
: intersection meshing method. Values: CGAL
or LIBMESH_TETGEN
. Default: CGAL
.Boolean flags:
StitchInterMeshes
: do not stich together the intersection meshes.VerboseOutput
or --verbose
: print some extra information, such as the coupling mesh partitioning. Definition at line 12 of file intersection_input_parser.cpp.
void carl::invert_index_unordered_map | ( | const std::unordered_map< int, int > & | input_map, |
std::unordered_map< int, int > & | output_map | ||
) |
Definition at line 72 of file common_functions.cpp.
void carl::jump_lines | ( | T & | filestream, |
unsigned int | numberOfLines = 1 |
||
) |
Definition at line 33 of file common_functions.h.
void carl::lump_matrix | ( | libMesh::PetscMatrix< libMesh::Number > & | matrixInput, |
libMesh::PetscMatrix< libMesh::Number > & | matrixOutput | ||
) |
Definition at line 3 of file PETSC_matrix_operations.cpp.
void carl::lump_matrix_and_invert | ( | libMesh::PetscMatrix< libMesh::Number > & | matrixInput, |
libMesh::PetscMatrix< libMesh::Number > & | matrixOutput | ||
) |
Definition at line 37 of file PETSC_matrix_operations.cpp.
void carl::lump_matrix_and_invert | ( | libMesh::PetscMatrix< libMesh::Number > & | matrixInput, |
libMesh::PetscVector< libMesh::Number > & | vecOutput | ||
) |
Definition at line 73 of file PETSC_matrix_operations.cpp.
|
inline |
Definition at line 22 of file mpi_carl_tools.h.
void carl::PETSC_invert_dense_matrix | ( | Mat & | matrix_in, |
Mat & | matrix_out | ||
) |
Definition at line 490 of file PETSC_matrix_operations.cpp.
void carl::PETSC_MatMultScale_Bcast | ( | Mat | mat_seq, |
Vec | vec_seq_in, | ||
Vec | vec_seq_out, | ||
double | a_const | ||
) |
Definition at line 523 of file PETSC_matrix_operations.cpp.
void carl::print_input_params | ( | const std::string & | output_filename, |
libmesh_solve_linear_system_input_params & | input_params | ||
) |
Function used to generate a solver input file from "input_params".
Definition at line 67 of file libmesh_solve_linear_system_input_parser.cpp.
void carl::print_matrix | ( | libMesh::PetscMatrix< libMesh::Number > & | CouplingTestMatrix | ) |
Definition at line 104 of file PETSC_matrix_operations.cpp.
void carl::print_matrix_col_line_sum | ( | libMesh::PetscMatrix< libMesh::Number > & | CouplingTestMatrix, |
const std::string | name_base | ||
) |
Definition at line 137 of file PETSC_matrix_operations.cpp.
void carl::print_matrix_dim | ( | libMesh::PetscMatrix< libMesh::Number > & | CouplingTestMatrix, |
bool | bDetailed = false |
||
) |
Definition at line 165 of file PETSC_matrix_operations.cpp.
void carl::print_matrix_info | ( | libMesh::PetscMatrix< libMesh::Number > & | InputMatrix, |
std::ostream & | os = libMesh::out |
||
) |
Definition at line 202 of file PETSC_matrix_operations.cpp.
void carl::print_matrix_matlab | ( | libMesh::PetscMatrix< libMesh::Number > & | CouplingTestMatrix, |
const std::string | name_base | ||
) |
Definition at line 158 of file PETSC_matrix_operations.cpp.
void carl::print_PETSC_vector | ( | libMesh::PetscVector< libMesh::Number > & | input_vec, |
const std::string & | filename | ||
) |
void carl::print_stats_to_file | ( | std::vector< double > & | vec_data, |
const std::string | filename | ||
) |
Definition at line 126 of file common_functions.cpp.
void carl::read_local_intersection_tables | ( | const libMesh::Parallel::Communicator & | WorldComm, |
const std::string & | intersection_local_table_Filename, | ||
std::unordered_map< int, std::pair< int, int > > & | local_intersection_pairs_map, | ||
std::unordered_map< int, int > & | local_intersection_meshI_to_inter_map | ||
) |
Definition at line 546 of file mesh_tables.cpp.
void carl::read_PETSC_matrix | ( | Mat | input_mat, |
const std::string & | filename, | ||
MPI_Comm | comm = PETSC_COMM_WORLD |
||
) |
Definition at line 439 of file PETSC_matrix_operations.cpp.
void carl::read_PETSC_matrix | ( | libMesh::PetscMatrix< libMesh::Number > & | input_mat, |
const std::string & | filename | ||
) |
Definition at line 450 of file PETSC_matrix_operations.cpp.
void carl::read_PETSC_vector | ( | libMesh::PetscVector< libMesh::Number > & | input_vec, |
const std::string & | filename | ||
) |
Definition at line 377 of file PETSC_matrix_operations.cpp.
void carl::read_PETSC_vector | ( | Vec | input_vec, |
const std::string & | filename, | ||
MPI_Comm | comm = PETSC_COMM_WORLD |
||
) |
Definition at line 367 of file PETSC_matrix_operations.cpp.
void carl::reduced_system_init | ( | Sys & | system_input | ) |
Definition at line 74 of file common_functions.h.
void carl::repartition_system_meshes | ( | const libMesh::Parallel::Communicator & | WorldComm, |
libMesh::Mesh & | mesh_input, | ||
libMesh::Mesh & | mesh_intersect, | ||
std::unordered_map< int, std::pair< int, int > > & | local_intersection_pairs_map, | ||
bool | bUseSecond = true |
||
) |
Definition at line 755 of file mesh_tables.cpp.
void carl::set_equivalence_tables | ( | const libMesh::Parallel::Communicator & | WorldComm, |
const std::string & | equivalence_table_A_Filename, | ||
const std::string & | equivalence_table_B_Filename, | ||
std::unordered_map< int, int > & | equivalence_table_A_to_R_A, | ||
std::unordered_map< int, int > & | equivalence_table_B_to_R_B, | ||
std::unordered_map< int, int > & | equivalence_table_R_A_to_A, | ||
std::unordered_map< int, int > & | equivalence_table_R_B_to_B | ||
) |
Definition at line 306 of file mesh_tables.cpp.
void carl::set_full_intersection_tables | ( | const libMesh::Parallel::Communicator & | WorldComm, |
const std::string & | intersection_full_table_Filename, | ||
std::unordered_map< int, std::pair< int, int > > & | full_intersection_pairs_map, | ||
std::unordered_map< int, int > & | full_intersection_meshI_to_inter_map | ||
) |
Definition at line 437 of file mesh_tables.cpp.
void carl::set_global_mediator_system_intersection_lists | ( | const libMesh::Parallel::Communicator & | WorldComm, |
const std::string & | intersection_global_table_Filename, | ||
const std::unordered_map< int, int > & | equivalence_table_system_to_mediator, | ||
const std::unordered_map< int, int > & | equivalence_table_mediator_to_system, | ||
std::unordered_multimap< int, int > & | inter_mediator_A, | ||
std::unordered_multimap< int, int > & | inter_mediator_B | ||
) |
Definition at line 683 of file mesh_tables.cpp.
void carl::set_intersection_tables | ( | const libMesh::Parallel::Communicator & | WorldComm, |
const libMesh::Mesh & | mesh_intersection, | ||
const std::string & | intersection_full_table_Filename, | ||
const std::string & | equivalence_table_A_Filename, | ||
const std::string & | equivalence_table_B_Filename, | ||
const std::unordered_map< int, int > & | equivalence_table_A_to_R_A, | ||
const std::unordered_map< int, int > & | equivalence_table_B_to_R_B, | ||
std::unordered_map< int, std::pair< int, int > > & | full_intersection_pairs_map, | ||
std::unordered_map< int, std::pair< int, int > > & | full_intersection_restricted_pairs_map, | ||
std::unordered_map< int, int > & | local_intersection_meshI_to_inter_map | ||
) |
Definition at line 595 of file mesh_tables.cpp.
void carl::set_local_intersection_tables | ( | const libMesh::Parallel::Communicator & | WorldComm, |
const libMesh::Mesh & | mesh_intersection, | ||
const std::string & | intersection_local_table_Filename, | ||
const std::string & | equivalence_table_A_Filename, | ||
const std::string & | equivalence_table_B_Filename, | ||
const std::unordered_map< int, int > & | equivalence_table_A_to_R_A, | ||
const std::unordered_map< int, int > & | equivalence_table_B_to_R_B, | ||
std::unordered_map< int, std::pair< int, int > > & | local_intersection_pairs_map, | ||
std::unordered_map< int, std::pair< int, int > > & | local_intersection_restricted_pairs_map, | ||
std::unordered_map< int, int > & | local_intersection_meshI_to_inter_map | ||
) |
Definition at line 639 of file mesh_tables.cpp.
void carl::set_restricted_intersection_pairs_table | ( | const std::unordered_map< int, std::pair< int, int > > & | full_intersection_pairs_map, |
const std::unordered_map< int, int > & | equivalence_table_A_to_R_A, | ||
const std::unordered_map< int, int > & | equivalence_table_B_to_R_B, | ||
std::unordered_map< int, std::pair< int, int > > & | full_intersection_restricted_pairs_map | ||
) |
Definition at line 402 of file mesh_tables.cpp.
void carl::set_weight_function_domain_idx | ( | std::string & | filename, |
int & | domain_Idx_BIG, | ||
int & | nb_of_domain_Idx_micro, | ||
std::vector< int > & | domain_Idx_micro, | ||
std::vector< int > & | domain_Idx_coupling | ||
) |
Definition at line 4 of file mesh_tables.cpp.
void carl::solve_linear_PETSC | ( | libMesh::PetscMatrix< libMesh::Number > & | A, |
libMesh::PetscVector< libMesh::Number > & | b, | ||
libMesh::PetscVector< libMesh::Number > & | x, | ||
KSP & | ksp, | ||
PC & | pc | ||
) |
Definition at line 270 of file PETSC_matrix_operations.cpp.
int carl::voigt_index_converter | ( | int | aaa, |
int | bbb | ||
) |
Definition at line 93 of file common_functions.cpp.
void carl::write_PETSC_matrix | ( | Mat | input_mat, |
const std::string & | filename, | ||
int | rank, | ||
MPI_Comm | comm = PETSC_COMM_WORLD , |
||
int | dim = 1 |
||
) |
Definition at line 415 of file PETSC_matrix_operations.cpp.
void carl::write_PETSC_matrix | ( | libMesh::PetscMatrix< libMesh::Number > & | input_mat, |
const std::string & | filename, | ||
int | dim = 1 |
||
) |
Definition at line 433 of file PETSC_matrix_operations.cpp.
void carl::write_PETSC_matrix_MATLAB | ( | Mat | input_mat, |
const std::string & | filename, | ||
MPI_Comm | comm = PETSC_COMM_WORLD |
||
) |
Definition at line 356 of file PETSC_matrix_operations.cpp.
void carl::write_PETSC_vector | ( | libMesh::PetscVector< libMesh::Number > & | input_vec, |
const std::string & | filename, | ||
int | dim = 1 |
||
) |
Definition at line 338 of file PETSC_matrix_operations.cpp.
void carl::write_PETSC_vector | ( | Vec | input_vec, |
const std::string & | filename, | ||
int | rank, | ||
MPI_Comm | comm = PETSC_COMM_WORLD , |
||
int | dim = 1 |
||
) |
Definition at line 320 of file PETSC_matrix_operations.cpp.
void carl::write_PETSC_vector_MATLAB | ( | Vec | input_vec, |
const std::string & | filename, | ||
MPI_Comm | comm = PETSC_COMM_WORLD |
||
) |
Definition at line 344 of file PETSC_matrix_operations.cpp.