Select Git revision
CMakeLists.txt
-
Stéphane Del Pino authored
The new class is meant to be much faster - it requires an estimation of the number values per row - if the number of stored values per line exceeds the reserved one, an a special storage zone (per row) is used. It is important to give a precise estimation of the number of values per rows: - if the provided expected number of values is too small with regard to the real number of values stored for a given row, then building performances can be noticeably affected - if the provided expected number of values per row corresponds exactly to the effective number of stored values, then the construction of the CRSMatrix costs nothing. In the later case, one benefits from a significant CPU and memory costs reduction.
Stéphane Del Pino authoredThe new class is meant to be much faster - it requires an estimation of the number values per row - if the number of stored values per line exceeds the reserved one, an a special storage zone (per row) is used. It is important to give a precise estimation of the number of values per rows: - if the provided expected number of values is too small with regard to the real number of values stored for a given row, then building performances can be noticeably affected - if the provided expected number of values per row corresponds exactly to the effective number of stored values, then the construction of the CRSMatrix costs nothing. In the later case, one benefits from a significant CPU and memory costs reduction.
CMakeLists.txt 6.68 KiB
set(EXECUTABLE_OUTPUT_PATH ${PUGS_BINARY_DIR})
include_directories(${PUGS_SOURCE_DIR}/src)
include_directories(${PUGS_BINARY_DIR}/src)
include_directories(${PUGS_SOURCE_DIR}/tests)
add_executable (unit_tests
test_main.cpp
test_AffectationProcessor.cpp
test_AffectationToStringProcessor.cpp
test_AffectationToTupleProcessor.cpp
test_Array.cpp
test_ArraySubscriptProcessor.cpp
test_ASTBuilder.cpp
test_ASTDotPrinter.cpp
test_ASTModulesImporter.cpp
test_ASTNode.cpp
test_ASTNodeAffectationExpressionBuilder.cpp
test_ASTNodeArraySubscriptExpressionBuilder.cpp
test_ASTNodeBinaryOperatorExpressionBuilder.cpp
test_ASTNodeBuiltinFunctionExpressionBuilder.cpp
test_ASTNodeDataType.cpp
test_ASTNodeDataTypeBuilder.cpp
test_ASTNodeDataTypeChecker.cpp
test_ASTNodeDataTypeFlattener.cpp
test_ASTNodeDeclarationToAffectationConverter.cpp
test_ASTNodeEmptyBlockCleaner.cpp
test_ASTNodeExpressionBuilder.cpp
test_ASTNodeFunctionEvaluationExpressionBuilder.cpp
test_ASTNodeFunctionExpressionBuilder.cpp
test_ASTNodeIncDecExpressionBuilder.cpp
test_ASTNodeJumpPlacementChecker.cpp
test_ASTNodeListAffectationExpressionBuilder.cpp
test_ASTNodeListProcessor.cpp
test_ASTNodeNaturalConversionChecker.cpp
test_ASTNodeTypeCleaner.cpp
test_ASTNodeUnaryOperatorExpressionBuilder.cpp
test_ASTPrinter.cpp
test_ASTSymbolTableBuilder.cpp
test_ASTSymbolInitializationChecker.cpp
test_BreakProcessor.cpp
test_BinaryExpressionProcessor_arithmetic.cpp
test_BinaryExpressionProcessor_comparison.cpp
test_BinaryExpressionProcessor_equality.cpp
test_BinaryExpressionProcessor_logic.cpp
test_BinaryExpressionProcessor_raw.cpp
test_BinaryExpressionProcessor_shift.cpp
test_BinaryOperatorMangler.cpp
test_BiCGStab.cpp
test_BuildInfo.cpp
test_BuiltinFunctionEmbedder.cpp
test_BuiltinFunctionEmbedderUtils.cpp
test_BuiltinFunctionEmbedderTable.cpp
test_BuiltinFunctionProcessor.cpp
test_CastArray.cpp
test_CellIntegrator.cpp
test_CellType.cpp
test_ConsoleManager.cpp
test_CG.cpp
test_ConcatExpressionProcessor.cpp
test_ConsoleManager.cpp
test_ContinueProcessor.cpp
test_CRSGraph.cpp
test_CRSMatrix.cpp
test_CRSMatrixDescriptor.cpp
test_CubeGaussQuadrature.cpp
test_CubeTransformation.cpp
test_DataVariant.cpp
test_Demangle.cpp
test_DiamondDualConnectivityBuilder.cpp
test_DiamondDualMeshBuilder.cpp
test_DiscreteFunctionDescriptorP0.cpp
test_DiscreteFunctionDescriptorP0Vector.cpp
test_DiscreteFunctionType.cpp
test_DiscreteFunctionUtils.cpp
test_DoWhileProcessor.cpp
test_Dual1DConnectivityBuilder.cpp
test_Dual1DMeshBuilder.cpp
test_DualConnectivityManager.cpp
test_DualMeshManager.cpp
test_DualMeshType.cpp
test_EdgeIntegrator.cpp
test_EigenvalueSolver.cpp
test_EmbeddedData.cpp
test_EmbeddedIDiscreteFunctionUtils.cpp
test_EscapedString.cpp
test_Exceptions.cpp
test_ExecutionPolicy.cpp
test_FaceIntegrator.cpp
test_FakeProcessor.cpp
test_ForProcessor.cpp
test_FunctionArgumentConverter.cpp
test_FunctionProcessor.cpp
test_FunctionSymbolId.cpp
test_FunctionTable.cpp
test_GaussLegendreQuadratureDescriptor.cpp
test_GaussLobattoQuadratureDescriptor.cpp
test_GaussQuadratureDescriptor.cpp
test_IfProcessor.cpp
test_IncDecExpressionProcessor.cpp
test_IntegrateCellArray.cpp
test_IntegrateCellValue.cpp
test_IntegrateOnCells.cpp
test_INodeProcessor.cpp
test_ItemId.cpp
test_ItemType.cpp
test_LinearSolver.cpp
test_LinearSolverOptions.cpp
test_LineTransformation.cpp
test_ListAffectationProcessor.cpp
test_MathModule.cpp
test_MedianDualConnectivityBuilder.cpp
test_MedianDualMeshBuilder.cpp
test_NameProcessor.cpp
test_NaNHelper.cpp
test_OStream.cpp
test_ParseError.cpp
test_PETScUtils.cpp
test_PrimalToDiamondDualConnectivityDataMapper.cpp
test_PrimalToDual1DConnectivityDataMapper.cpp
test_PrimalToMedianDualConnectivityDataMapper.cpp
test_PrismGaussQuadrature.cpp
test_PrismTransformation.cpp
test_PugsAssert.cpp
test_PugsFunctionAdapter.cpp
test_PugsUtils.cpp
test_PyramidGaussQuadrature.cpp
test_PyramidTransformation.cpp
test_QuadratureType.cpp
test_RefId.cpp
test_RefItemList.cpp
test_RevisionInfo.cpp
test_SmallArray.cpp
test_SmallVector.cpp
test_Socket.cpp
test_SocketModule.cpp
test_SquareGaussQuadrature.cpp
test_SquareTransformation.cpp
test_SymbolTable.cpp
test_Table.cpp
test_TetrahedronGaussQuadrature.cpp
test_TetrahedronTransformation.cpp
test_TensorialGaussLegendreQuadrature.cpp
test_TensorialGaussLobattoQuadrature.cpp
test_Timer.cpp
test_TinyMatrix.cpp
test_TinyVector.cpp
test_TriangleGaussQuadrature.cpp
test_TriangleTransformation.cpp
test_TupleToVectorProcessor.cpp
test_UnaryExpressionProcessor.cpp
test_UnaryOperatorMangler.cpp
test_Vector.cpp
test_WhileProcessor.cpp
)
add_executable (mpi_unit_tests
mpi_test_main.cpp
test_Connectivity.cpp
test_DiscreteFunctionInterpoler.cpp
test_DiscreteFunctionP0.cpp
test_DiscreteFunctionP0Vector.cpp
test_DiscreteFunctionVectorInterpoler.cpp
test_EmbeddedIDiscreteFunctionMathFunctions.cpp
test_EmbeddedIDiscreteFunctionOperators.cpp
test_InterpolateItemArray.cpp
test_InterpolateItemValue.cpp
test_ItemArray.cpp
test_ItemArrayUtils.cpp
test_ItemValue.cpp
test_ItemValueUtils.cpp
test_Messenger.cpp
test_OFStream.cpp
test_Partitioner.cpp
test_RandomEngine.cpp
test_SubItemValuePerItem.cpp
test_SubItemValuePerItemUtils.cpp
test_SubItemArrayPerItem.cpp
test_SubItemArrayPerItemUtils.cpp
test_Synchronizer.cpp
)
add_library(test_Pugs_MeshDataBase
MeshDataBaseForTests.cpp)
target_link_libraries (unit_tests
test_Pugs_MeshDataBase
PugsLanguageAST
PugsLanguageModules
PugsLanguageAlgorithms
PugsLanguageUtils
PugsLanguage
PugsMesh
PugsAlgebra
PugsAnalysis
PugsScheme
PugsOutput
PugsUtils
Kokkos::kokkos
${PARMETIS_LIBRARIES}
${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES}
${PETSC_LIBRARIES}
Catch2
${PUGS_STD_LINK_FLAGS}
stdc++fs
)
target_link_libraries (mpi_unit_tests
test_Pugs_MeshDataBase
PugsAlgebra
PugsAnalysis
PugsUtils
PugsLanguage
PugsLanguageAST
PugsLanguageModules
PugsLanguageAlgorithms
PugsMesh
PugsAlgebra
PugsUtils
PugsLanguageUtils
PugsScheme
PugsOutput
PugsUtils
PugsAlgebra
PugsMesh
Kokkos::kokkos
${PARMETIS_LIBRARIES}
${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES}
${PETSC_LIBRARIES}
Catch2
${PUGS_STD_LINK_FLAGS}
stdc++fs
)
enable_testing()
if(${PUGS_HAS_MPI})
set(MPIEXEC_OPTION_FLAGS --oversubscribe)
if (NOT "$ENV{GITLAB_CI}" STREQUAL "")
set(MPIEXEC_OPTION_FLAGS ${MPIEXEC_OPTION_FLAGS} --allow-run-as-root)
endif()
set(OptionalCatchTestLauncher ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 3 ${MPIEXEC_OPTION_FLAGS} --path ${PUGS_BINARY_DIR})
endif()