Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Discussion] Speed up compilation of C++ tests #10049

Closed
loumalouomega opened this issue Jul 19, 2022 · 10 comments
Closed

[Discussion] Speed up compilation of C++ tests #10049

loumalouomega opened this issue Jul 19, 2022 · 10 comments
Labels
Compilation Discussion Proposal Suggestion of a concept for further development in a new field of application Testing

Comments

@loumalouomega
Copy link
Member

Description
@KratosMultiphysics/technical-committee

When you use some utility to analyse the compilation's times in Kratos (see https://opensource.adobe.com/lagrange-docs/dev/compilation-profiling/ or https://github.com/ginolatorilla/ninja-log-analyser) some things you will realize are:

  • The files that take the most time are the exports to python. This is normal, as it requires the compilation of many files.
  • Then the files that take more time after those (which are expected) are the C++ tests. This is strange as these files are not enormous.

If you do some research, you will find that this is due to the mechanics we use for the C++ tests. We use catch (we thought errors). This is quite compilation time-consuming. And there are many error checks in the C++ tests (one per each check).

In my previous job, as there wasn't any C++ test system I did some research and the most efficient after many trial and error was the library called doctest:

https://github.com/doctest/doctest

I even have a custom implementation of the library, as this library only implements a check, so for advance checks you must implement manually. In the library, you can see it mimics the Kratos checks:

https://github.com/loumalouomega/MACROdoctest

Long time ago I started the implementation in Kratos, but I couldn't dedicate time to finish it: https://github.com/KratosMultiphysics/Kratos/tree/external_lib/doc_test, now maybe could be a good time to retake it.

Essentially is that, I think it would help to minimize the long compilations times, apart from the typical techniques (separate source and header, reduce number of includes, etc...)

@loumalouomega loumalouomega added Discussion Testing Compilation Proposal Suggestion of a concept for further development in a new field of application labels Jul 19, 2022
@matekelemen
Copy link
Contributor

Just out of curiosity, can you please include your compilation profiling output?

@loumalouomega
Copy link
Member Author

loumalouomega commented Jul 19, 2022

Just out of curiosity, can you please include your compilation profiling output?

Here only core and linear solvers are compiled (from greater time to lower time, with ninja_log_analyser):

113906ms kratos/CMakeFiles/Kratos.dir/python/add_processes_to_python.cpp.o
111939ms kratos/CMakeFiles/KratosCore.dir/factories/standard_linear_solver_factory.cpp.o
103463ms kratos/CMakeFiles/KratosCore.dir/linear_solvers/amgcl_solver_impl.cpp.o
94901ms kratos/CMakeFiles/Kratos.dir/python/add_strategies_to_python.cpp.o
94646ms kratos/CMakeFiles/Kratos.dir/python/add_amgcl_solver_to_python.cpp.o
92497ms applications/LinearSolversApplication/CMakeFiles/KratosLinearSolversApplication.dir/custom_python/add_custom_solvers_to_python.cpp.o
80293ms kratos/CMakeFiles/Kratos.dir/python/add_geometries_to_python.cpp.o
79571ms kratos/CMakeFiles/Kratos.dir/python/add_variable_utils_to_python.cpp.o
79359ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/strategies/builder_and_solvers/test_builder_and_solver.cpp.o
73211ms kratos/CMakeFiles/Kratos.dir/python/add_geometrical_utilities_to_python.cpp.o
67938ms kratos/CMakeFiles/KratosCore.dir/processes/simple_mortar_mapper_process.cpp.o
67842ms kratos/CMakeFiles/Kratos.dir/python/add_other_utilities_to_python.cpp.o
66199ms kratos/CMakeFiles/Kratos.dir/python/add_io_to_python.cpp.o
55812ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/strategies/schemes/test_residual_based_adjoint_bossak_scheme.cpp.o
55664ms kratos/CMakeFiles/Kratos.dir/python/add_model_part_to_python.cpp.o
54981ms kratos/CMakeFiles/KratosCore.dir/sources/kratos_application.cpp.o
53907ms applications/LinearSolversApplication/CMakeFiles/KratosLinearSolversApplication.dir/custom_python/add_custom_decompositions_to_python.cpp.o
53414ms kratos/CMakeFiles/Kratos.dir/python/add_mesh_to_python.cpp.o
51643ms kratos/CMakeFiles/KratosCore.dir/sources/model_part_io.cpp.o
47663ms kratos/mpi/CMakeFiles/KratosMPI.dir/python/add_mpi_debug_utilities_to_python.cpp.o
44780ms applications/LinearSolversApplication/CMakeFiles/KratosLinearSolversCore.dir/custom_factories/dense_linear_solver_factory.cpp.o
44087ms kratos/CMakeFiles/Kratos.dir/python/add_containers_to_python.cpp.o
41924ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_calculate_embedded_nodal_variable_from_skin_process.cpp.o
41609ms kratos/CMakeFiles/Kratos.dir/python/add_vector_to_python.cpp.o
40445ms applications/LinearSolversApplication/CMakeFiles/KratosLinearSolversCore.dir/linear_solvers_application.cpp.o
37684ms kratos/CMakeFiles/KratosCore.dir/utilities/sensitivity_builder.cpp.o
37670ms kratos/CMakeFiles/KratosCore.dir/utilities/exact_mortar_segmentation_utility.cpp.o
36205ms kratos/CMakeFiles/KratosCore.dir/utilities/geometry_tester.cpp.o
33445ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/strategies/strategies/test_strategies.cpp.o
33232ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_calculate_discontinuous_distance_to_skin_process.cpp.o
33028ms kratos/CMakeFiles/Kratos.dir/python/add_constitutive_law_to_python.cpp.o
32919ms kratos/CMakeFiles/KratosCore.dir/modeler/cad_io_modeler.cpp.o
31901ms kratos/CMakeFiles/Kratos.dir/python/add_linear_solvers_to_python.cpp.o
31242ms kratos/CMakeFiles/KratosCore.dir/sources/variables.cpp.o
28725ms kratos/CMakeFiles/KratosCore.dir/sources/model_part.cpp.o
28319ms kratos/CMakeFiles/Kratos.dir/python/add_node_to_python.cpp.o
28099ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_find_intersected_geometrical_objects_process.cpp.o
27842ms kratos/mpi/CMakeFiles/KratosMPI.dir/python/add_distributed_sparse_matrices_to_python.cpp.o
27491ms kratos/CMakeFiles/Kratos.dir/python/add_kernel_to_python.cpp.o
27391ms kratos/CMakeFiles/Kratos.dir/python/add_sparse_matrices_to_python.cpp.o
27388ms kratos/mpi/CMakeFiles/KratosMPI.dir/python/add_mpi_utilities_to_python.cpp.o
26276ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_calculate_distance_to_skin_process.cpp.o
26116ms kratos/CMakeFiles/KratosCore.dir/modeler/cad_tessellation_modeler.cpp.o
26105ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_replace_elements_and_condition_process.cpp.o
25305ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_surface.cpp.o
25215ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_coupling_geometry.cpp.o
25045ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_coupling_geometry_quadrature.cpp.o
24884ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_surface_in_nurbs_volume.cpp.o
24666ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_element_size_calculator.cpp.o
24620ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/strategies/strategies/test_runge_kutta_explicit_strategies.cpp.o
24017ms kratos/CMakeFiles/Kratos.dir/python/add_modeler_to_python.cpp.o
23952ms kratos/CMakeFiles/Kratos.dir/python/add_communicator_to_python.cpp.o
23415ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/modified_shape_functions/test_tetrahedra_3d_4_ausas_modified_shape_functions.cpp.o
23353ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_tetrahedra_edge_swapping_process.cpp.o
23339ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_coarsening_process.cpp.o
23279ms kratos/CMakeFiles/Kratos.dir/python/add_matrix_to_python.cpp.o
23251ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_apply_ray_casting_process.cpp.o
22684ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_sensitivity_builder.cpp.o
22682ms kratos/CMakeFiles/KratosCore.dir/input_output/cad_json_output.cpp.o
22481ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_curve.cpp.o
22309ms kratos/CMakeFiles/KratosCore.dir/utilities/embedded_skin_utility.cpp.o
22259ms kratos/mpi/CMakeFiles/KratosMPICore.dir/utilities/parallel_fill_communicator.cpp.o
22045ms kratos/CMakeFiles/Kratos.dir/python/add_properties_to_python.cpp.o
22021ms kratos/mpi/CMakeFiles/KratosMPICore.dir/utilities/gather_modelpart_utility.cpp.o
21970ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_volume.cpp.o
21732ms kratos/CMakeFiles/KratosCore.dir/processes/calculate_discontinuous_distance_to_skin_process.cpp.o
21640ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_quadrilateral_3d_4.cpp.o
21623ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_mpi_communicator.cpp.o
21524ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_triangle_3d_3.cpp.o
21091ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_structured_mesh_generator_process.cpp.o
20928ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_set_initial_state_process.cpp.o
20871ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/modified_shape_functions/test_tetrahedra_3d_4_modified_shape_functions.cpp.o
20848ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_brep_surface.cpp.o
20737ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_brep_curve_on_surface.cpp.o
20619ms kratos/mpi/CMakeFiles/KratosMPICore.dir/utilities/distributed_model_part_initializer.cpp.o
20230ms kratos/mpi/CMakeFiles/KratosMPI.dir/python/kratos_mpi_python.cpp.o
20122ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/strategies/strategies/test_bfecc_explicit_strategy.cpp.o
20095ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_geometrical_sensitivity_utility.cpp.o
19810ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_geometry_utils.cpp.o
19797ms kratos/CMakeFiles/KratosCore.dir/utilities/divide_tetrahedra_3d_4.cpp.o
19786ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_triangle_2d_3.cpp.o
19619ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/modified_shape_functions/test_triangle_2d_3_modified_shape_functions.cpp.o
19462ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_geometrical_projection_utilities.cpp.o
19424ms kratos/CMakeFiles/KratosCore.dir/geometries/oriented_bounding_box.cpp.o
19329ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_mpi_assign_unique_model_part_collection_tag_utility.cpp.o
19314ms kratos/CMakeFiles/KratosCore.dir/processes/fast_transfer_between_model_parts_process.cpp.o
18776ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/modified_shape_functions/test_triangle_2d_3_ausas_modified_shape_functions.cpp.o
18528ms kratos/CMakeFiles/Kratos.dir/python/add_kratos_application_to_python.cpp.o
18483ms kratos/CMakeFiles/KratosCore.dir/sources/gid_io.cpp.o
18269ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_prism_3d_6.cpp.o
18114ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_divide_tetrahedra_3d_4.cpp.o
18093ms kratos/CMakeFiles/KratosCore.dir/processes/from_json_check_result_process.cpp.o
18011ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_mortar_mapper_process.cpp.o
17694ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_tetrahedra_3d_4.cpp.o
17650ms kratos/CMakeFiles/KratosCore.dir/elements/levelset_convection_element_simplex_algebraic_stabilization.cpp.o
17626ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_quadrature_point_geometry.cpp.o
17469ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_geometry_metric_calculator.cpp.o
17370ms kratos/CMakeFiles/KratosCore.dir/processes/structured_mesh_generator_process.cpp.o
17301ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_compare_elements_and_conditions_utility.cpp.o
17196ms kratos/CMakeFiles/KratosCore.dir/processes/find_global_nodal_elemental_neighbours_process.cpp.o
17007ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_divide_triangle_2d_3.cpp.o
17005ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/strategies/schemes/test_schemes.cpp.o
16908ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_distributed_sparse_graph.cpp.o
16599ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_line_2d_2.cpp.o
16531ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_hexahedra_3d_8.cpp.o
16498ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_curve_on_surface_geometry.cpp.o
16432ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_embedded_skin_utility.cpp.o
16392ms kratos/CMakeFiles/KratosCore.dir/modeler/connectivity_preserve_modeler.cpp.o
16198ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_parallel_distance_calculation_process.cpp.o
16189ms kratos/CMakeFiles/KratosCore.dir/processes/reorder_and_optimize_modelpart_process.cpp.o
16184ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_auxiliar_model_part_utilities.cpp.o
16024ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_split_tetrahedra.cpp.o
15911ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_discont_utils.cpp.o
15859ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_serializer_geometry_data.cpp.o
15814ms kratos/CMakeFiles/KratosCore.dir/sources/dem_variables.cpp.o
15536ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_non_rectangular_jacobian.cpp.o
15493ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_assign_unique_model_part_collection_tag_utility.cpp.o
15456ms kratos/CMakeFiles/Kratos.dir/python/add_constraint_to_python.cpp.o
15448ms kratos/CMakeFiles/KratosCore.dir/utilities/divide_triangle_2d_3.cpp.o
15429ms kratos/CMakeFiles/KratosCore.dir/sources/communicator.cpp.o
15418ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/modified_shape_functions/test_tetrahedra_3d_4_ausas_incised_shape_functions.cpp.o
15339ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_fast_transfer_between_model_parts_process.cpp.o
14976ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/strategies/builder_and_solvers/test_explicit_builder_and_solver.cpp.o
14717ms kratos/CMakeFiles/KratosCore.dir/sources/global_pointer_variables.cpp.o
14634ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_volume_knot_refinement.cpp.o
14529ms kratos/CMakeFiles/KratosCore.dir/sources/mapping_variables.cpp.o
14391ms kratos/CMakeFiles/KratosCore.dir/sources/mat_variables.cpp.o
14260ms kratos/CMakeFiles/Kratos.dir/python/add_serializer_to_python.cpp.o
14257ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_quadrilateral_2d_4.cpp.o
14246ms kratos/CMakeFiles/KratosCore.dir/sources/kernel.cpp.o
14221ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_intersection_utilities.cpp.o
14209ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_oriented_bounding_box.cpp.o
14186ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_line_2d_3.cpp.o
14175ms kratos/CMakeFiles/Kratos.dir/python/add_logger_to_python.cpp.o
14116ms kratos/CMakeFiles/KratosCore.dir/sources/mesh_moving_variables.cpp.o
14088ms kratos/CMakeFiles/Kratos.dir/python/add_data_communicator_to_python.cpp.o
14085ms kratos/CMakeFiles/KratosCore.dir/sources/cfd_variables.cpp.o
14055ms kratos/CMakeFiles/KratosCore.dir/processes/replace_elements_and_condition_process.cpp.o
14045ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_line_geometrical_sensitivity.cpp.o
13991ms kratos/CMakeFiles/KratosCore.dir/sources/fsi_variables.cpp.o
13984ms kratos/CMakeFiles/KratosCore.dir/processes/assign_scalar_input_to_entities_process.cpp.o
13976ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_divide_triangle_3d_3.cpp.o
13852ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_data_communicator_manipulation.cpp.o
13809ms kratos/CMakeFiles/KratosCore.dir/sources/deprecated_variables.cpp.o
13692ms kratos/CMakeFiles/KratosCore.dir/processes/tetrahedra_mesh_worst_element_smoothing_process.cpp.o
13685ms applications/LinearSolversApplication/CMakeFiles/KratosLinearSolversApplication.dir/custom_python/linear_solvers_python_application.cpp.o
13675ms kratos/CMakeFiles/KratosCore.dir/testing/distributed_test_case.cpp.o
13608ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/modified_shape_functions/test_triangle_2d_3_ausas_incised_shape_functions.cpp.o
13606ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_generic_neighbour_elements.cpp.o
13589ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_prism_3d_15.cpp.o
13437ms kratos/CMakeFiles/KratosCore.dir/utilities/variable_redistribution_utility.cpp.o
13357ms kratos/CMakeFiles/KratosCore.dir/processes/find_intersected_geometrical_objects_with_obb_process.cpp.o
13221ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_skin_detection_process.cpp.o
13016ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_line_3d_2.cpp.o
12980ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_projection_nurbs_geometry.cpp.o
12522ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_point_on_geometry.cpp.o
12510ms kratos/CMakeFiles/Kratos.dir/python/add_factories_to_python.cpp.o
12501ms kratos/CMakeFiles/Kratos.dir/python/add_mapper_to_python.cpp.o
12491ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_quadrilateral_2d_8.cpp.o
12462ms kratos/CMakeFiles/Kratos.dir/python/add_dofs_to_python.cpp.o
12446ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_pointer_communicator.cpp.o
12400ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_triangle_2d_6.cpp.o
12305ms kratos/CMakeFiles/KratosCore.dir/elements/mesh_element.cpp.o
12283ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/auxiliar_files_for_cpp_unnitest/test_element.cpp.o
12231ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sparse_matrices/test_sparse_graph_serial.cpp.o
12119ms kratos/CMakeFiles/KratosCore.dir/processes/split_internal_interfaces_process.cpp.o
12115ms kratos/CMakeFiles/KratosCore.dir/utilities/variable_utils.cpp.o
12008ms kratos/CMakeFiles/KratosCore.dir/elements/edge_based_gradient_recovery_element.cpp.o
11956ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/auxiliar_files_for_cpp_unnitest/test_bar_element.cpp.o
11916ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_curve_axis_intersection.cpp.o
11889ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_pointer_vector_set.cpp.o
11858ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_mpi_data_communicator.cpp.o
11836ms kratos/CMakeFiles/KratosCore.dir/utilities/divide_triangle_3d_3.cpp.o
11797ms kratos/CMakeFiles/KratosCore.dir/conditions/mesh_condition.cpp.o
11706ms kratos/CMakeFiles/Kratos.dir/python/add_kratos_parameters_to_python.cpp.o
11700ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_curve_tessellation.cpp.o
11556ms kratos/CMakeFiles/KratosCore.dir/elements/embedded_nodal_variable_calculation_element_simplex.cpp.o
11511ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_kratos_components.cpp.o
11463ms kratos/CMakeFiles/Kratos.dir/python/add_testing_to_python.cpp.o
11323ms kratos/CMakeFiles/KratosCore.dir/processes/find_global_nodal_neighbours_for_entities_process.cpp.o
11290ms kratos/CMakeFiles/KratosCore.dir/processes/find_intersected_geometrical_objects_process.cpp.o
11059ms kratos/CMakeFiles/KratosCore.dir/utilities/specifications_utilities.cpp.o
11015ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_pyramid_3d_13.cpp.o
10937ms kratos/CMakeFiles/KratosCore.dir/sources/periodic_condition.cpp.o
10878ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_tetrahedra_3d_10.cpp.o
10858ms kratos/CMakeFiles/KratosCore.dir/sources/kratos_components.cpp.o
10785ms kratos/CMakeFiles/KratosCore.dir/utilities/rve_periodicity_utility.cpp.o
10767ms kratos/CMakeFiles/Kratos.dir/python/add_bounding_box_to_python.cpp.o
10631ms kratos/CMakeFiles/Kratos.dir/python/add_convergence_accelerators_to_python.cpp.o
10479ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_pyramid_3d_5.cpp.o
10195ms kratos/CMakeFiles/Kratos.dir/python/add_model_to_python.cpp.o
10193ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_model_part.cpp.o
10126ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_model_part_geometry_container.cpp.o
10018ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_geometry_container.cpp.o
10001ms kratos/CMakeFiles/Kratos.dir/python/add_response_functions_to_python.cpp.o
9872ms kratos/CMakeFiles/Kratos.dir/python/add_parallel_environment_to_python.cpp.o
9829ms kratos/CMakeFiles/KratosCore.dir/input_output/unv_output.cpp.o
9781ms kratos/mpi/CMakeFiles/KratosMPI.dir/python/add_mpi_communicator_to_python.cpp.o
9761ms kratos/CMakeFiles/Kratos.dir/python/add_global_pointers_to_python.cpp.o
9711ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_math_utils.cpp.o
9578ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_geometry.cpp.o
9554ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_volume_shape_functions.cpp.o
9508ms kratos/CMakeFiles/KratosCore.dir/sources/kratos_parameters.cpp.o
9448ms kratos/CMakeFiles/Kratos.dir/python/add_search_strategies_to_python.cpp.o
9431ms kratos/CMakeFiles/KratosCore.dir/processes/compute_nodal_gradient_process.cpp.o
9351ms kratos/CMakeFiles/KratosCore.dir/testing/tester.cpp.o
9321ms kratos/CMakeFiles/KratosCore.dir/utilities/read_materials_utility.cpp.o
9319ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_debug_utilities.cpp.o
9272ms kratos/CMakeFiles/KratosCore.dir/input_output/vtk_output.cpp.o
9199ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_binbased_fast_point_locator.cpp.o
8861ms kratos/CMakeFiles/KratosCore.dir/utilities/normal_calculation_utils.cpp.o
8779ms kratos/CMakeFiles/KratosCore.dir/utilities/divide_geometry.cpp.o
8550ms kratos/CMakeFiles/Kratos.dir/python/kratos_python.cpp.o
8434ms kratos/CMakeFiles/KratosCore.dir/processes/parallel_distance_calculation_process.cpp.o
8368ms kratos/CMakeFiles/Kratos.dir/python/add_dem_variables_to_python.cpp.o
7951ms kratos/CMakeFiles/KratosCore.dir/processes/apply_periodic_boundary_condition_process.cpp.o
7873ms kratos/CMakeFiles/Kratos.dir/python/add_mapping_variables_to_python.cpp.o
7835ms kratos/CMakeFiles/Kratos.dir/python/add_mat_variables_to_python.cpp.o
7695ms kratos/CMakeFiles/KratosCore.dir/processes/assign_scalar_variable_to_entities_process.cpp.o
7627ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_surface_shape_functions.cpp.o
7548ms kratos/CMakeFiles/KratosCore.dir/processes/skin_detection_process.cpp.o
7425ms kratos/CMakeFiles/Kratos.dir/python/add_quaternion_to_python.cpp.o
7322ms kratos/CMakeFiles/Kratos.dir/python/add_process_info_to_python.cpp.o
7294ms kratos/CMakeFiles/Kratos.dir/python/add_deprecated_variables_to_python.cpp.o
7275ms kratos/CMakeFiles/Kratos.dir/python/add_cfd_variables_to_python.cpp.o
7268ms kratos/CMakeFiles/KratosCore.dir/processes/compute_nodal_normal_divergence_process.cpp.o
7227ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_model_part_io.cpp.o
7177ms kratos/CMakeFiles/KratosCore.dir/processes/sub_model_part_skin_detection_process.cpp.o
7164ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/spatial_containers/test_geometrical_objects_bins.cpp.o
7115ms kratos/CMakeFiles/Kratos.dir/python/add_table_to_python.cpp.o
7099ms kratos/CMakeFiles/KratosCore.dir/processes/integration_values_extrapolation_to_nodes_process.cpp.o
7083ms kratos/CMakeFiles/Kratos.dir/python/add_matrix_market_interface_to_python.cpp.o
7028ms kratos/CMakeFiles/Kratos.dir/python/add_mesh_moving_variables_to_python.cpp.o
6968ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/strategies/convergence_criteria/test_mixed_generic_criteria.cpp.o
6912ms kratos/CMakeFiles/Kratos.dir/python/add_fsi_variables_to_python.cpp.o
6868ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_node.cpp.o
6863ms kratos/CMakeFiles/KratosCore.dir/solving_strategies/builder_and_solvers/explicit_builder.cpp.o
6863ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_checks.cpp.o
6796ms kratos/mpi/CMakeFiles/KratosMPICore.dir/sources/mpi_data_communicator.cpp.o
6784ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_parallel_utilities.cpp.o
6771ms kratos/CMakeFiles/Kratos.dir/python/add_points_to_python.cpp.o
6750ms kratos/CMakeFiles/KratosCore.dir/sources/parallel_environment.cpp.o
6622ms kratos/CMakeFiles/KratosCore.dir/utilities/mortar_utilities.cpp.o
6613ms kratos/CMakeFiles/KratosCore.dir/sources/constitutive_law.cpp.o
6613ms kratos/CMakeFiles/KratosCore.dir/utilities/function_parser_utility.cpp.o
6598ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/linear_solvers/test_monotonicity_solver.cpp.o
6544ms kratos/CMakeFiles/KratosCore.dir/utilities/assign_unique_model_part_collection_tag_utility.cpp.o
6471ms kratos/CMakeFiles/KratosCore.dir/utilities/entities_utilities.cpp.o
6393ms kratos/CMakeFiles/KratosCore.dir/processes/entity_erase_process.cpp.o
6339ms kratos/CMakeFiles/KratosCore.dir/processes/time_averaging_process.cpp.o
6320ms kratos/CMakeFiles/Kratos.dir/python/add_memory_info_to_python.cpp.o
6320ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_data_communicator.cpp.o
6318ms kratos/CMakeFiles/KratosCore.dir/utilities/sensitivity_utilities.cpp.o
6216ms kratos/CMakeFiles/KratosCore.dir/utilities/constraint_utilities.cpp.o
6154ms kratos/CMakeFiles/KratosCore.dir/utilities/file_name_data_collector.cpp.o
6020ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_brute_force_point_locator.cpp.o
6013ms kratos/CMakeFiles/KratosCore.dir/processes/calculate_nodal_area_process.cpp.o
5959ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_mpi_serialized_communication.cpp.o
5926ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_dense_householder_qr_decomposition.cpp.o
5925ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_properties.cpp.o
5888ms kratos/CMakeFiles/KratosCore.dir/modeler/copy_properties_modeler.cpp.o
5878ms kratos/mpi/CMakeFiles/KratosMPI.dir/python/add_mpi_data_communicator_to_python.cpp.o
5812ms kratos/CMakeFiles/KratosCore.dir/processes/tetrahedral_mesh_orientation_check.cpp.o
5805ms kratos/CMakeFiles/KratosCore.dir/processes/apply_ray_casting_process.cpp.o
5790ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/spaces/test_kratos_space.cpp.o
5706ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/elements/test_levelset_convection_element_simplex.cpp.o
5699ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/global_pointers/test_global_pointers_container.cpp.o
5697ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_kratos_parameters.cpp.o
5604ms kratos/mpi/CMakeFiles/KratosMPICore.dir/utilities/mpi_normal_calculation_utilities.cpp.o
5590ms kratos/CMakeFiles/KratosCore.dir/processes/set_initial_state_process.cpp.o
5586ms kratos/CMakeFiles/KratosCore.dir/processes/assign_scalar_field_to_entities_process.cpp.o
5576ms kratos/CMakeFiles/KratosCore.dir/containers/model.cpp.o
5574ms kratos/CMakeFiles/KratosCore.dir/modeler/duplicate_mesh_modeler.cpp.o
5572ms kratos/CMakeFiles/KratosCore.dir/utilities/auxiliar_model_part_utilities.cpp.o
5526ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/global_pointers/test_global_pointers_vector.cpp.o
5517ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_constraint.cpp.o
5512ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_nodal_data.cpp.o
5438ms kratos/CMakeFiles/KratosCore.dir/factories/standard_preconditioner_factory.cpp.o
5414ms kratos/CMakeFiles/KratosCore.dir/factories/mapper_factory.cpp.o
5389ms kratos/CMakeFiles/KratosCore.dir/utilities/model_part_combination_utilities.cpp.o
5339ms kratos/CMakeFiles/KratosCore.dir/utilities/force_and_torque_utils.cpp.o
5325ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_dof.cpp.o
5314ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_result_database.cpp.o
5300ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_serializer.cpp.o
5256ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_calculate_nodal_area_process.cpp.o
5234ms kratos/CMakeFiles/KratosCore.dir/processes/generic_find_elements_neighbours_process.cpp.o
5183ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_linear_master_slave_constraint.cpp.o
5178ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_element.cpp.o
5176ms kratos/CMakeFiles/KratosCore.dir/processes/calculate_distance_to_skin_process.cpp.o
5110ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/factories/test_factories.cpp.o
5076ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_sparse_matrix_mutiplication_utilities.cpp.o
5057ms kratos/CMakeFiles/KratosCore.dir/processes/find_nodal_h_process.cpp.o
5049ms kratos/CMakeFiles/KratosCore.dir/constraints/linear_master_slave_constraint.cpp.o
5000ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_svd_utils.cpp.o
4965ms kratos/CMakeFiles/KratosCore.dir/utilities/tessellation_utilities/delaunator_utilities.cpp.o
4947ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_compute_nodal_gradient_process.cpp.o
4908ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/spatial_containers/test_bins_dynamic.cpp.o
4887ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_distributed_exporter.cpp.o
4880ms kratos/CMakeFiles/KratosCore.dir/processes/tetrahedra_mesh_quality_weighted_smoothing_process.cpp.o
4874ms kratos/CMakeFiles/KratosCore.dir/geometries/nurbs_shape_function_utilities/nurbs_surface_refinement_utilities.cpp.o
4864ms kratos/CMakeFiles/KratosCore.dir/processes/mesh_local_smoothing_process.cpp.o
4832ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/modeler/test_copy_properties_modeler.cpp.o
4830ms kratos/CMakeFiles/KratosCore.dir/processes/tetrahedra_mesh_edge_swapping_process.cpp.o
4814ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/external_libraries/test_delaunator.cpp.o
4802ms kratos/CMakeFiles/KratosCore.dir/modified_shape_functions/modified_shape_functions.cpp.o
4799ms kratos/CMakeFiles/KratosCore.dir/utilities/cpp_tests_utilities.cpp.o
4796ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_delaunator_utilities.cpp.o
4784ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_integration_values_extrapolation_to_nodes_process.cpp.o
4749ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_shape_function_derivatives.cpp.o
4739ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_distributed_model_part_initializer.cpp.o
4718ms kratos/CMakeFiles/KratosCore.dir/utilities/sub_model_part_entities_boolean_operation_utility.cpp.o
4714ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_model.cpp.o
4664ms kratos/CMakeFiles/KratosCore.dir/input_output/logger_table_output.cpp.o
4657ms kratos/libKratosCore.so
4656ms kratos/CMakeFiles/KratosCore.dir/utilities/apply_function_to_nodes_utility.cpp.o
4644ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_find_nodal_h_process.cpp.o
4622ms kratos/CMakeFiles/KratosCore.dir/utilities/fill_communicator.cpp.o
4621ms kratos/CMakeFiles/KratosCore.dir/factories/register_factories.cpp.o
4592ms kratos/CMakeFiles/KratosCore.dir/modeler/serial_model_part_combinator_modeler.cpp.o
4503ms kratos/CMakeFiles/KratosCore.dir/utilities/single_import_model_part.cpp.o
4495ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_apply_function_to_nodes_utilities.cpp.o
4467ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/spatial_containers/test_bins_static.cpp.o
4456ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/elements/test_edge_based_gradient_recovery_element.cpp.o
4439ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/processes/test_find_nodal_neighbours_process.cpp.o
4391ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/spaces/test_ublas_space.cpp.o
4375ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/cross_check_shape_functions_values.cpp.o
4368ms kratos/CMakeFiles/KratosCore.dir/utilities/brute_force_point_locator.cpp.o
4325ms kratos/CMakeFiles/KratosCore.dir/testing/testing.cpp.o
4291ms kratos/CMakeFiles/KratosCore.dir/utilities/mls_shape_functions_utility.cpp.o
4285ms kratos/CMakeFiles/KratosCore.dir/utilities/compare_elements_and_conditions_utility.cpp.o
4278ms kratos/CMakeFiles/KratosCore.dir/sources/bounding_volume_tree.cpp.o
4272ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_curve_shape_functions.cpp.o
4264ms kratos/mpi/CMakeFiles/KratosMPICore.dir/utilities/data_communicator_factory.cpp.o
4227ms kratos/CMakeFiles/KratosCore.dir/input_output/logger_message.cpp.o
4206ms kratos/CMakeFiles/KratosCore.dir/sources/io.cpp.o
4200ms kratos/CMakeFiles/KratosCore.dir/sources/reorder_consecutive_model_part_io.cpp.o
4185ms kratos/CMakeFiles/KratosCore.dir/constraints/slip_constraint.cpp.o
4145ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_mpi_coloring_utilities.cpp.o
4113ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_communicator.cpp.o
4080ms kratos/CMakeFiles/KratosCore.dir/modeler/modeler_factory.cpp.o
4057ms kratos/CMakeFiles/KratosCore.dir/processes/measure_mesh_quality_process.cpp.o
4044ms kratos/CMakeFiles/KratosCore.dir/sources/serializer.cpp.o
4027ms kratos/CMakeFiles/KratosCore.dir/sources/data_communicator.cpp.o
4011ms kratos/CMakeFiles/KratosCore.dir/processes/find_nodal_neighbours_process.cpp.o
3985ms kratos/CMakeFiles/KratosCore.dir/modeler/tetrahedra_edge_shell.cpp.o
3973ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/constitutive_laws/test_constitutive_law.cpp.o
3964ms kratos/CMakeFiles/KratosCore.dir/utilities/element_size_calculator.cpp.o
3925ms kratos/CMakeFiles/KratosCore.dir/modeler/tetrahedra_ball.cpp.o
3924ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_condition.cpp.o
3906ms kratos/mpi/CMakeFiles/KratosMPICore.dir/sources/mpi_manager.cpp.o
3899ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_geometry_tester.cpp.o
3860ms kratos/CMakeFiles/KratosCore.dir/processes/mesh_coarsening_process.cpp.o
3838ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/input_output/test_logger.cpp.o
3824ms kratos/CMakeFiles/KratosCore.dir/modified_shape_functions/tetrahedra_3d_4_ausas_incised_shape_functions.cpp.o
3822ms kratos/CMakeFiles/KratosCore.dir/processes/mesh_node_collapsing_process.cpp.o
3813ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_properties.cpp.o
3785ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_mpi_environment.cpp.o
3744ms kratos/CMakeFiles/KratosCore.dir/utilities/geometry_utilities.cpp.o
3603ms kratos/CMakeFiles/KratosCore.dir/modified_shape_functions/triangle_2d_3_ausas_incised_shape_functions.cpp.o
3551ms kratos/CMakeFiles/KratosCore.dir/modified_shape_functions/tetrahedra_3d_4_modified_shape_functions.cpp.o
3543ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_nurbs_utilities.cpp.o
3524ms kratos/CMakeFiles/KratosCore.dir/modified_shape_functions/triangle_2d_3_modified_shape_functions.cpp.o
3498ms kratos/CMakeFiles/KratosCore.dir/modified_shape_functions/tetrahedra_3d_4_ausas_modified_shape_functions.cpp.o
3372ms kratos/mpi/CMakeFiles/KratosMPICore.dir/tests/sources/test_flag_synchronization.cpp.o
3339ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_filesystem.cpp.o
3194ms kratos/CMakeFiles/KratosCore.dir/utilities/geometry_metric_calculator.cpp.o
3191ms kratos/CMakeFiles/KratosCore.dir/modified_shape_functions/triangle_2d_3_ausas_modified_shape_functions.cpp.o
3113ms kratos/CMakeFiles/KratosCore.dir/sources/process_info.cpp.o
3087ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_function_parser_utility.cpp.o
3073ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_plane_approximation_utility.cpp.o
3040ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_memory_pool.cpp.o
2931ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_data_value_container.cpp.o
2911ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_table.cpp.o
2881ms kratos/CMakeFiles/KratosCore.dir/modified_shape_functions/ausas_modified_shape_functions.cpp.o
2860ms kratos/CMakeFiles/KratosCore.dir/utilities/time_discretization.cpp.o
2858ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/global_pointers/test_global_pointer.cpp.o
2844ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/auxiliar_files_for_cpp_unnitest/test_constitutive_law.cpp.o
2776ms kratos/CMakeFiles/KratosCore.dir/integration/integration_point_utilities.cpp.o
2774ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_chunk.cpp.o
2763ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_variables_list_data_value_container.cpp.o
2718ms kratos/CMakeFiles/KratosCore.dir/sources/initial_state.cpp.o
2716ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_variables_list.cpp.o
2667ms kratos/CMakeFiles/KratosCore.dir/integration/integration_info.cpp.o
2593ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/geometries/test_bounding_box.cpp.o
2570ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_variables.cpp.o
2529ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_flags.cpp.o
2499ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/external_libraries/test_concurrent_queue.cpp.o
2439ms kratos/CMakeFiles/KratosCore.dir/sources/convection_diffusion_settings.cpp.o
2434ms kratos/CMakeFiles/KratosCore.dir/containers/variables_list.cpp.o
2385ms kratos/CMakeFiles/KratosCore.dir/containers/variables_list_data_value_container.cpp.o
2378ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_quaternion.cpp.o
2344ms kratos/CMakeFiles/KratosCore.dir/utilities/result_dabatase.cpp.o
2338ms kratos/CMakeFiles/KratosCore.dir/containers/data_value_container.cpp.o
2204ms kratos/CMakeFiles/KratosCore.dir/utilities/properties_utilities.cpp.o
2164ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_mls_shape_functions_utility.cpp.o
2140ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/integration/test_integration_info.cpp.o
2128ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_brent_iteration.cpp.o
2126ms kratos/CMakeFiles/KratosCore.dir/utilities/communication_coloring_utilities.cpp.o
2088ms kratos/Kratos.cpython-310-x86_64-linux-gnu.so
2050ms kratos/CMakeFiles/KratosCore.dir/containers/variable_data.cpp.o
2034ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_debug_helpers.cpp.o
2009ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_string_utilities.cpp.o
2007ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/utilities/test_stl_io.cpp.o
1996ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_parameters.cpp.o
1980ms kratos/CMakeFiles/KratosCore.dir/utilities/geometrical_sensitivity_utility.cpp.o
1972ms kratos/CMakeFiles/KratosCore.dir/sources/kratos_filesystem.cpp.o
1967ms kratos/CMakeFiles/KratosCore.dir/utilities/line_sensitivity_utility.cpp.o
1960ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_exceptions.cpp.o
1818ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/containers/test_array_1d.cpp.o
1800ms kratos/CMakeFiles/KratosCore.dir/containers/nodal_data.cpp.o
1671ms kratos/CMakeFiles/KratosCore.dir/containers/flags.cpp.o
1661ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/testing/test_testing.cpp.o
1654ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_code_location.cpp.o
1360ms kratos/CMakeFiles/KratosCore.dir/utilities/geometrical_transformation_utilities.cpp.o
1246ms kratos/CMakeFiles/KratosCore.dir/utilities/timer.cpp.o
962ms kratos/CMakeFiles/KratosCore.dir/utilities/parallel_utilities.cpp.o
844ms kratos/CMakeFiles/KratosCore.dir/input_output/logger.cpp.o
822ms kratos/CMakeFiles/KratosCore.dir/sources/prime_numbers.cpp.o
731ms kratos/CMakeFiles/KratosCore.dir/input_output/file_logger_output.cpp.o
729ms kratos/CMakeFiles/KratosCore.dir/input_output/logger_output.cpp.o
675ms kratos/CMakeFiles/KratosCore.dir/sources/code_location.cpp.o
644ms kratos/CMakeFiles/KratosCore.dir/testing/test_suite.cpp.o
636ms kratos/CMakeFiles/KratosCore.dir/utilities/string_utilities.cpp.o
615ms kratos/CMakeFiles/KratosCore.dir/sources/exception.cpp.o
597ms CMakeFiles/install.util
536ms kratos/mpi/libKratosMPICore.so
505ms external_libraries/gidpost/CMakeFiles/gidpost.dir/source/gidpost.c.o
505ms kratos/CMakeFiles/KratosCore.dir/mappers/mapper_flags.cpp.o
491ms kratos/CMakeFiles/KratosCore.dir/sources/memory_info.cpp.o
456ms kratos/CMakeFiles/KratosCore.dir/testing/test_skipped_exception.cpp.o
439ms kratos/CMakeFiles/KratosCore.dir/testing/test_case.cpp.o
410ms kratos/run_kratos/CMakeFiles/runkratos.dir/krun_main.cpp.o
381ms kratos/CMakeFiles/KratosCore.dir/testing/test_case_result.cpp.o
303ms kratos/CMakeFiles/KratosCore.dir/sources/global_variables.cpp.o
280ms kratos/CMakeFiles/KratosVersion.dir/sources/kratos_version.cpp.o
277ms external_libraries/gidpost/CMakeFiles/gidpost.dir/source/lookupa.c.o
266ms external_libraries/triangle/CMakeFiles/triangle.dir/triangle.c.o
265ms external_libraries/tinyexpr/CMakeFiles/tinyexpr.dir/tinyexpr/tinyexpr.c.o
257ms kratos/mpi/KratosMPI.cpython-310-x86_64-linux-gnu.so
246ms external_libraries/gidpost/CMakeFiles/gidpost.dir/source/gidpostInt.c.o
223ms applications/LinearSolversApplication/KratosLinearSolversApplication.cpython-310-x86_64-linux-gnu.so
176ms applications/LinearSolversApplication/libKratosLinearSolversCore.so
146ms external_libraries/gidpost/libgidpost.a
140ms kratos/run_kratos/runkratos
130ms kratos/CMakeFiles/KratosCore.dir/sources/mmio.c.o
119ms external_libraries/gidpost/CMakeFiles/gidpost.dir/source/hashtab.c.o
73ms external_libraries/gidpost/CMakeFiles/gidpost.dir/source/gidpostHash.c.o
68ms external_libraries/gidpost/CMakeFiles/gidpost.dir/source/recycle.c.o
44ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_amatrix_alias.cpp.o
41ms external_libraries/tinyexpr/libtinyexpr.a
40ms external_libraries/triangle/libtriangle.a
33ms kratos/CMakeFiles/KratosCore.dir/tests/cpp_tests/sources/test_amatrix.cpp.o

@philbucher
Copy link
Member

I used doctest for CoSimIO
Even contributed a bit to the MPI version

I like it a lot

@loumalouomega
Copy link
Member Author

I used doctest for CoSimIO Even contributed a bit to the MPI version

I like it a lot

@philbucher I tried to contact you by private, I don't know if I have your e-mail right. Can you please contact me?

@matekelemen
Copy link
Contributor

matekelemen commented Jul 20, 2022

I've never used doctest; can someone explain a couple of things to me?

  • As I understand, the most appealing part of doctest is that it can be easily disabled == tests can be put right at the end of source files but can still be compiled optionally. Is there a difference between this solution and selective unity builds?
  • Would adopting doctest only mean replacing testing macros (such as KRATOS_CHECK) while leaving the rest of the infrastructure intact (TestCase, TestSuite, etc...) + moving tests from their own source files to the sources they're testing? Would that actually improve compile times?
  • I've read that doctest isn't a good choice for testing large projects. Does this have any merit? If yes, does the existing testing infrastructure in Kratos mitigate that?

@loumalouomega
Copy link
Member Author

I've never used doctest; can someone explain a couple of things to me?

* As I understand, the most appealing part of `doctest` is that it can be easily disabled == tests can be put right at the end of source files but can still be compiled optionally. Is there a difference between this solution and selective unity builds?

The advantage is not using exceptions which take a lot oc ompilation time (that's why the cpp tests take so long to compile despite being moderately small)

* Would adopting `doctest` only mean replacing testing macros (such as `KRATOS_CHECK`) while leaving the rest of the infrastructure intact (`TestCase`, `TestSuite`, etc...) + moving tests from their own source files to the sources they're testing? Would that actually improve compile times?

The idea would be to refactor existing macros so the code doesn't need to be changed

* I've read that `doctest` isn't a good choice for testing large projects. Does this have any merit? If yes, does the existing testing infrastructure in `Kratos` mitigate that?

Where have you read that?

@loumalouomega
Copy link
Member Author

* I've read that `doctest` isn't a good choice for testing large projects. Does this have any merit? If yes, does the existing testing infrastructure in `Kratos` mitigate that?

Where have you read that?

I have been looking and I did not found anything related with that. Maybe you are confusing with python doctest (https://docs.python.org/3/library/doctest.html), is not the same

@matekelemen
Copy link
Contributor

Maybe you are confusing with python doctest

Uhm, yeah that's possible, I just skimmed over the first few google hits 🤦

@philbucher
Copy link
Member

I used doctest for CoSimIO Even contributed a bit to the MPI version

I like it a lot

@philbucher I tried to contact you by private, I don't know if I have your e-mail right. Can you please contact me?

I sent you an email :)

@roigcarlo roigcarlo moved this to 📋 Backlog in Technical Commiittee Oct 30, 2023
@roigcarlo roigcarlo moved this from 📋 Backlog to 👀 In review in Technical Commiittee Oct 30, 2023
@roigcarlo roigcarlo moved this from 👀 Next meeting TODO to 🆕 New in Technical Commiittee Dec 19, 2023
@roigcarlo roigcarlo moved this from 🆕 New to 📋 Backlog in Technical Commiittee Dec 19, 2023
@pooyan-dadvand
Copy link
Member

@KratosMultiphysics/technical-committee approves the #11506, choosing the GTest. The reason was the maturity and the completeness of the GTest in comparison with doctest.

@github-project-automation github-project-automation bot moved this from ⏱ Blocked to ✅ Done in Technical Commiittee Jul 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Compilation Discussion Proposal Suggestion of a concept for further development in a new field of application Testing
Projects
Status: ✅ Done
Development

No branches or pull requests

4 participants