Skip to content
Snippets Groups Projects
Select Git revision
  • 344591351adf4b47decc426f7c32c2727298be7c
  • develop default protected
  • feature/kinetic-schemes
  • feature/reconstruction
  • feature/local-dt-fsi
  • feature/composite-scheme-sources
  • feature/composite-scheme-other-fluxes
  • feature/serraille
  • feature/variational-hydro
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • master protected
  • feature/escobar-smoother
  • feature/hypoelasticity-clean
  • feature/hypoelasticity
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

CMakeLists.txt

Blame
    • Stéphane Del Pino's avatar
      34459135
      Replace SparseMatrixDescriptor by CRSMatrixDescriptor · 34459135
      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.
      34459135
      History
      Replace SparseMatrixDescriptor by CRSMatrixDescriptor
      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.
    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()