Commit c5721d49 authored by Vít Hanousek's avatar Vít Hanousek
Browse files

Working Heat Equation with host and MPI.

parent cbb3019b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ class DistributedGridIO<MeshFunctionType,LocalCopy>
    typedef typename MeshFunctionType::VectorType VectorType;
    //typedef DistributedGrid< MeshType,MeshFunctionType::getMeshDimension()> DistributedGridType;
    
    static bool save(File &file,MeshFunctionType &meshFunction)
    static bool save(File &file,File &meshOutputFile, MeshFunctionType &meshFunction)
    {
        auto *distrGrid=meshFunction.getMesh().GetDistGrid();
        
@@ -93,6 +93,8 @@ class DistributedGridIO<MeshFunctionType,LocalCopy>
        newMesh->setSpaceSteps(spaceSteps);
        newMesh->setOrigin(origin+TNL::Containers::tnlDotProduct(spaceSteps,localBegin));
        
        newMesh->save( meshOutputFile );

        VectorType newDof(newMesh-> template getEntitiesCount< typename MeshType::Cell >());

        MeshFunctionType newMeshFunction;
+5 −2
Original line number Diff line number Diff line
@@ -200,8 +200,11 @@ makeSnapshot( const RealType& time,
   fileName.setIndex( step );
#ifdef USE_MPI
   File file;
   file.open( fileName.getFileName()+convertToString(MPI::COMM_WORLD.Get_rank()), IOMode::write );
   Meshes::DistributedGridIO<MeshFunctionType> ::save(file, *uPointer );
   File meshFile;
   meshFile.open( convertToString(MPI::COMM_WORLD.Get_rank())+String("mesh.tnl"),IOMode::write);
   file.open( convertToString(MPI::COMM_WORLD.Get_rank())+fileName.getFileName(), IOMode::write );
   Meshes::DistributedGridIO<MeshFunctionType> ::save(file,meshFile, *uPointer );
   meshFile.close();
   file.close();
#else
   if( ! this->uPointer->save( fileName.getFileName() ) )
+3 −1
Original line number Diff line number Diff line
@@ -147,7 +147,9 @@ class ExplicitUpdater
                                             TraverserBoundaryEntitiesProcessor >
                                           ( meshPointer,
                                             userDataPointer );
         
#ifdef USE_MPI
         uPointer->synchronize();
#endif
      }
      
         
+1 −5
Original line number Diff line number Diff line
@@ -49,10 +49,6 @@ class TimeDependentPDESolver : public PDESolver< typename Problem::RealType,

      TimeDependentPDESolver();

#ifdef USE_MPI
      ~TimeDependentPDESolver();
#endif

      static void configSetup( Config::ConfigDescription& config,
                               const String& prefix = "" );

@@ -95,7 +91,7 @@ class TimeDependentPDESolver : public PDESolver< typename Problem::RealType,
#ifdef USE_MPI
      MeshPointer globalMeshPointer;

      Meshes::DistributedGrid<MeshType> * distrGrid;
      Meshes::DistributedGrid<MeshType> distrGrid;
#endif

      DofVectorPointer dofsPointer;
+2 −12
Original line number Diff line number Diff line
@@ -30,16 +30,6 @@ TimeDependentPDESolver()
{
}

#ifdef USE_MPI
template< typename Problem,
          typename DiscreteSolver,
          typename TimeStepper >
TimeDependentPDESolver< Problem, DiscreteSolver, TimeStepper >::
~TimeDependentPDESolver()
{
    delete distrGrid;
}
#endif

template< typename Problem,
          typename DiscreteSolver,   
@@ -85,8 +75,8 @@ setup( const Config::ParameterContainer& parameters,

   typename Meshes::DistributedGrid<MeshType>::CoordinatesType overlap;
   overlap.setValue(1);
   this->distrGrid=new Meshes::DistributedGrid<MeshType>(*globalMeshPointer,overlap);
   distrGrid->SetupGrid(*meshPointer);
   this->distrGrid.SetGlobalGrid(*globalMeshPointer,overlap);
   distrGrid.SetupGrid(*meshPointer);
#else
   std::cout << "Loading a mesh from the file " << meshFile << "...";
   if( ! this->meshPointer->load( meshFile ) )
Loading