From 26e178928ace7c0fa371fc5a97987f1c5a517e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matou=C5=A1=20Fencl?= <fenclmat@fjfi.cvut.cz> Date: Fri, 30 Nov 2018 09:02:24 +0100 Subject: [PATCH] Change of int to IndexType and preparations for OpenMPI. --- .../hamilton-jacobi/HamiltonJacobiProblem.h | 2 ++ .../HamiltonJacobiProblem_impl.h | 20 +++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem.h b/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem.h index a414420002..7f1bd41939 100644 --- a/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem.h +++ b/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem.h @@ -25,6 +25,8 @@ #include <solvers/pde/tnlLinearSystemAssembler.h> #include <functions/tnlMeshFunction.h> +#include <TNL/Meshes/DistributedMeshes/DistributedGridIO.h> + template< typename Mesh, typename DifferentialOperator, typename BoundaryCondition, diff --git a/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem_impl.h b/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem_impl.h index 3cc6388497..9244b18332 100644 --- a/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem_impl.h +++ b/src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem_impl.h @@ -123,12 +123,24 @@ setInitialCondition( const Config::ParameterContainer& parameters, { this->bindDofs( mesh, dofs ); const String& initialConditionFile = parameters.getParameter< String >( "initial-condition" ); - if( ! this->solution.boundLoad( initialConditionFile ) ) + if(CommunicatorType::isDistributed()) { - std::cerr << "I am not able to load the initial condition from the file " << initialConditionFile << "." <<std::endl; - return false; + std::cout<<"Nodes Distribution: " << uPointer->getMesh().getDistributedMesh()->printProcessDistr() << std::endl; + if(distributedIOType==Meshes::DistributedMeshes::MpiIO) + Meshes::DistributedMeshes::DistributedGridIO<MeshFunctionType,Meshes::DistributedMeshes::MpiIO> ::load(initialConditionFile, *uPointer ); + if(distributedIOType==Meshes::DistributedMeshes::LocalCopy) + Meshes::DistributedMeshes::DistributedGridIO<MeshFunctionType,Meshes::DistributedMeshes::LocalCopy> ::load(initialConditionFile, *uPointer ); + uPointer->template synchronize<CommunicatorType>(); } - return true; + else + { + if( ! this->solution.boundLoad( initialConditionFile ) ) + { + std::cerr << "I am not able to load the initial condition from the file " << initialConditionFile << "." <<std::endl; + return false; + } + } + return true; } template< typename Mesh, -- GitLab