diff --git a/src/TNL/Solvers/PDE/TimeDependentPDESolver.h b/src/TNL/Solvers/PDE/TimeDependentPDESolver.h index 712e288996096ab4f1ff5c2580a073c43965c03c..58f4c5cc501592ce041ba4bfcb79ba84759e4389 100644 --- a/src/TNL/Solvers/PDE/TimeDependentPDESolver.h +++ b/src/TNL/Solvers/PDE/TimeDependentPDESolver.h @@ -86,7 +86,7 @@ class TimeDependentPDESolver MeshPointer meshPointer; - Meshes::DistributedMeshes::DistributedMesh<MeshType> distrMesh; + Meshes::DistributedMeshes::DistributedMesh<MeshType> distributedMesh; DofVectorPointer dofsPointer; diff --git a/src/TNL/Solvers/PDE/TimeDependentPDESolver_impl.h b/src/TNL/Solvers/PDE/TimeDependentPDESolver_impl.h index 78c9a6912ddd7fb9651ceab3035873843fab2348..045734c4aaae2117fdb792acd298ac27d221fd7e 100644 --- a/src/TNL/Solvers/PDE/TimeDependentPDESolver_impl.h +++ b/src/TNL/Solvers/PDE/TimeDependentPDESolver_impl.h @@ -56,13 +56,14 @@ setup( const Config::ParameterContainer& parameters, BaseType::setup( parameters, prefix ); - /**** - * Load the mesh from the mesh file - */ + ///// + // Load the mesh from the mesh file + // const String& meshFile = parameters.getParameter< String >( "mesh" ); - if( ! Meshes::loadMesh< typename Problem::CommunicatorType >( meshFile, *this->meshPointer, distrMesh ) ) + this->distributedMesh.setup( parameters, prefix ); + if( ! Meshes::loadMesh< typename Problem::CommunicatorType >( meshFile, *this->meshPointer, distributedMesh ) ) return false; - if( ! Meshes::decomposeMesh< Problem >( parameters, prefix, *this->meshPointer, distrMesh, *problem ) ) + if( ! Meshes::decomposeMesh< Problem >( parameters, prefix, *this->meshPointer, distributedMesh, *problem ) ) return false; problem->setMesh( this->meshPointer ); diff --git a/src/TNL/Solvers/PDE/TimeIndependentPDESolver.h b/src/TNL/Solvers/PDE/TimeIndependentPDESolver.h index 5711ec82e7ed2379d194cc3ba88eb2f3c5cf4463..e4a5f9778d3bf14b2a42df0819a3b71de028547b 100644 --- a/src/TNL/Solvers/PDE/TimeIndependentPDESolver.h +++ b/src/TNL/Solvers/PDE/TimeIndependentPDESolver.h @@ -67,7 +67,9 @@ class TimeIndependentPDESolver : public PDESolver< typename Problem::RealType, protected: - MeshPointer mesh; + MeshPointer meshPointer; + + Meshes::DistributedMeshes::DistributedMesh<MeshType> distributedMesh; CommonDataPointer commonDataPointer; diff --git a/src/TNL/Solvers/PDE/TimeIndependentPDESolver_impl.h b/src/TNL/Solvers/PDE/TimeIndependentPDESolver_impl.h index f53a989060e5b34a40f0bd7fe24b9700c15901ad..d676c8af05225119aa502fa13838d96e1f9926d1 100644 --- a/src/TNL/Solvers/PDE/TimeIndependentPDESolver_impl.h +++ b/src/TNL/Solvers/PDE/TimeIndependentPDESolver_impl.h @@ -45,21 +45,17 @@ TimeIndependentPDESolver< Problem >:: setup( const Config::ParameterContainer& parameters, const String& prefix ) { - /**** - * Load the mesh from the mesh file - */ + ///// + // Load the mesh from the mesh file + // const String& meshFile = parameters.getParameter< String >( "mesh" ); - std::cout << "Loading a mesh from the file " << meshFile << "..."; - if( ! this->mesh->load( meshFile ) ) - { - std::cerr << std::endl; - std::cerr << "I am not able to load the mesh from the file " << meshFile << "." << std::endl; - std::cerr << " You may create it with tools like tnl-grid-setup or tnl-mesh-convert." << std::endl; + this->distributedMesh.setup( parameters, prefix ); + if( ! Meshes::loadMesh< typename Problem::CommunicatorType >( meshFile, *this->meshPointer, distributedMesh ) ) + return false; + if( ! Meshes::decomposeMesh< Problem >( parameters, prefix, *this->meshPointer, distributedMesh, *problem ) ) return false; - } - std::cout << " [ OK ] " << std::endl; - problem->setMesh( this->mesh ); + problem->setMesh( this->meshPointer ); /**** * Set-up common data @@ -110,7 +106,7 @@ writeProlog( Logger& logger, logger.writeHeader( problem->getPrologHeader() ); problem->writeProlog( logger, parameters ); logger.writeSeparator(); - mesh->writeProlog( logger ); + meshPointer->writeProlog( logger ); logger.writeSeparator(); const String& solverName = parameters. getParameter< String >( "discrete-solver" ); logger.writeParameter< String >( "Discrete solver:", "discrete-solver", parameters );