|
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,
in the
coupling term).CouplingRigidity or --ck : rigidity used for the coupling matrix (in MPa, if mm was used for the meshes,
in both the
and
terms).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.