Loading src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem.h +0 −2 Original line number Original line Diff line number Diff line Loading @@ -25,8 +25,6 @@ #include <solvers/pde/tnlLinearSystemAssembler.h> #include <solvers/pde/tnlLinearSystemAssembler.h> #include <functions/tnlMeshFunction.h> #include <functions/tnlMeshFunction.h> #include <TNL/Meshes/DistributedMeshes/DistributedGridIO.h> template< typename Mesh, template< typename Mesh, typename DifferentialOperator, typename DifferentialOperator, typename BoundaryCondition, typename BoundaryCondition, Loading src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem_impl.h +4 −16 Original line number Original line Diff line number Diff line Loading @@ -123,23 +123,11 @@ setInitialCondition( const Config::ParameterContainer& parameters, { { this->bindDofs( mesh, dofs ); this->bindDofs( mesh, dofs ); const String& initialConditionFile = parameters.getParameter< String >( "initial-condition" ); const String& initialConditionFile = parameters.getParameter< String >( "initial-condition" ); if(CommunicatorType::isDistributed()) { 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>(); } else { if( ! this->solution.boundLoad( initialConditionFile ) ) if( ! this->solution.boundLoad( initialConditionFile ) ) { { std::cerr << "I am not able to load the initial condition from the file " << initialConditionFile << "." <<std::endl; std::cerr << "I am not able to load the initial condition from the file " << initialConditionFile << "." <<std::endl; return false; return false; } } } return true; return true; } } Loading src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/tnlDirectEikonalMethodsBase_impl.h +3 −3 Original line number Original line Diff line number Diff line Loading @@ -99,7 +99,7 @@ tnlDirectEikonalMethodsBase< Meshes::Grid< 2, Real, Device, Index > >:: updateBlocks( InterfaceMapType interfaceMap, updateBlocks( InterfaceMapType interfaceMap, MeshFunctionType aux, MeshFunctionType aux, MeshFunctionType helpFunc, MeshFunctionType helpFunc, ArrayContainer BlockIterHost, IndexType numThreadsPerBlock/*, Real **sArray*/ ) ArrayContainer BlockIterHost, int numThreadsPerBlock/*, Real **sArray*/ ) { { #pragma omp parallel for schedule( dynamic ) #pragma omp parallel for schedule( dynamic ) for( IndexType i = 0; i < BlockIterHost.getSize(); i++ ) for( IndexType i = 0; i < BlockIterHost.getSize(); i++ ) Loading Loading @@ -267,13 +267,13 @@ updateBlocks( InterfaceMapType interfaceMap, template< typename Real, template< typename Real, typename Device, typename Device, typename Index > typename Index > template< IndexType sizeSArray > template< int sizeSArray > void void tnlDirectEikonalMethodsBase< Meshes::Grid< 3, Real, Device, Index > >:: tnlDirectEikonalMethodsBase< Meshes::Grid< 3, Real, Device, Index > >:: updateBlocks( const InterfaceMapType interfaceMap, updateBlocks( const InterfaceMapType interfaceMap, const MeshFunctionType aux, const MeshFunctionType aux, MeshFunctionType& helpFunc, MeshFunctionType& helpFunc, ArrayContainer BlockIterHost, IndexType numThreadsPerBlock/*, Real **sArray*/ ) ArrayContainer BlockIterHost, int numThreadsPerBlock/*, Real **sArray*/ ) { { //#pragma omp parallel for schedule( dynamic ) //#pragma omp parallel for schedule( dynamic ) for( IndexType i = 0; i < BlockIterHost.getSize(); i++ ) for( IndexType i = 0; i < BlockIterHost.getSize(); i++ ) Loading src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/tnlFastSweepingMethod2D_impl.h +10 −10 Original line number Original line Diff line number Diff line Loading @@ -85,25 +85,25 @@ solve( const MeshPointer& mesh, #ifdef HAVE_MPI #ifdef HAVE_MPI int i = Communicators::MpiCommunicator::GetRank( Communicators::MpiCommunicator::AllGroup ); int i = Communicators::MpiCommunicator::GetRank( Communicators::MpiCommunicator::AllGroup ); printf( "Hello world from rank: %d ", i ); //printf( "Hello world from rank: %d ", i ); //Communicators::MpiCommunicator::Request r = Communicators::MpiCommunicator::ISend( auxPtr, 0, 0, Communicators::MpiCommunicator::AllGroup ); //Communicators::MpiCommunicator::Request r = Communicators::MpiCommunicator::ISend( auxPtr, 0, 0, Communicators::MpiCommunicator::AllGroup ); /*if( i == 1 ) if( i == 1 ) for( int k = 0; k < 16*16; k++ ) /*for( int k = 0; k < 16*16; k++ ) aux[ k ] = 10; aux[ k ] = 10;*/ printf( "1: mesh x: %d\n", mesh->getDimensions().x() ); printf( "1: mesh x: %d\n", mesh->getDimensions().x() ); printf( "1: mesh y: %d\n", mesh->getDimensions().y() ); printf( "1: mesh y: %d\n", mesh->getDimensions().y() ); aux.save("aux_proc1.tnl");*/ //aux.save("aux_proc1.tnl"); if( i == 0 ) if( i == 0 ) printf( "0: mesh x: %d\n", mesh->getDimensions().x() ); printf( "0: mesh x: %d\n", mesh->getDimensions().x() ); printf( "0: mesh y: %d\n", mesh->getDimensions().y() ); printf( "0: mesh y: %d\n", mesh->getDimensions().y() ); aux.save("aux_proc0.tnl"); //aux.save("aux_proc0.tnl"); for( int k = 0; k < 16*16; k++ ) /*for( int k = 0; k < mesh->getDimensions().x()*mesh->getDimensions().y(); k++ ) aux[ k ] = 10; aux[ k ] = 10; for( int k = 0; k < 16; k++ ){ for( int k = 0; k < mesh->getDimensions().x(); k++ ){ for( int l = 0; l < 16; l++ ) for( int l = 0; l < mesh->getDimensions().y(); l++ ) printf("%f.2\t",aux[ k * 16 + l ] ); printf("%f.2\t",aux[ k * 16 + l ] ); printf("\n"); printf("\n"); } }*/ /*bool a = Communicators::MpiCommunicator::IsInitialized(); /*bool a = Communicators::MpiCommunicator::IsInitialized(); if( a ) if( a ) Loading Loading
src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem.h +0 −2 Original line number Original line Diff line number Diff line Loading @@ -25,8 +25,6 @@ #include <solvers/pde/tnlLinearSystemAssembler.h> #include <solvers/pde/tnlLinearSystemAssembler.h> #include <functions/tnlMeshFunction.h> #include <functions/tnlMeshFunction.h> #include <TNL/Meshes/DistributedMeshes/DistributedGridIO.h> template< typename Mesh, template< typename Mesh, typename DifferentialOperator, typename DifferentialOperator, typename BoundaryCondition, typename BoundaryCondition, Loading
src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/HamiltonJacobiProblem_impl.h +4 −16 Original line number Original line Diff line number Diff line Loading @@ -123,23 +123,11 @@ setInitialCondition( const Config::ParameterContainer& parameters, { { this->bindDofs( mesh, dofs ); this->bindDofs( mesh, dofs ); const String& initialConditionFile = parameters.getParameter< String >( "initial-condition" ); const String& initialConditionFile = parameters.getParameter< String >( "initial-condition" ); if(CommunicatorType::isDistributed()) { 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>(); } else { if( ! this->solution.boundLoad( initialConditionFile ) ) if( ! this->solution.boundLoad( initialConditionFile ) ) { { std::cerr << "I am not able to load the initial condition from the file " << initialConditionFile << "." <<std::endl; std::cerr << "I am not able to load the initial condition from the file " << initialConditionFile << "." <<std::endl; return false; return false; } } } return true; return true; } } Loading
src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/tnlDirectEikonalMethodsBase_impl.h +3 −3 Original line number Original line Diff line number Diff line Loading @@ -99,7 +99,7 @@ tnlDirectEikonalMethodsBase< Meshes::Grid< 2, Real, Device, Index > >:: updateBlocks( InterfaceMapType interfaceMap, updateBlocks( InterfaceMapType interfaceMap, MeshFunctionType aux, MeshFunctionType aux, MeshFunctionType helpFunc, MeshFunctionType helpFunc, ArrayContainer BlockIterHost, IndexType numThreadsPerBlock/*, Real **sArray*/ ) ArrayContainer BlockIterHost, int numThreadsPerBlock/*, Real **sArray*/ ) { { #pragma omp parallel for schedule( dynamic ) #pragma omp parallel for schedule( dynamic ) for( IndexType i = 0; i < BlockIterHost.getSize(); i++ ) for( IndexType i = 0; i < BlockIterHost.getSize(); i++ ) Loading Loading @@ -267,13 +267,13 @@ updateBlocks( InterfaceMapType interfaceMap, template< typename Real, template< typename Real, typename Device, typename Device, typename Index > typename Index > template< IndexType sizeSArray > template< int sizeSArray > void void tnlDirectEikonalMethodsBase< Meshes::Grid< 3, Real, Device, Index > >:: tnlDirectEikonalMethodsBase< Meshes::Grid< 3, Real, Device, Index > >:: updateBlocks( const InterfaceMapType interfaceMap, updateBlocks( const InterfaceMapType interfaceMap, const MeshFunctionType aux, const MeshFunctionType aux, MeshFunctionType& helpFunc, MeshFunctionType& helpFunc, ArrayContainer BlockIterHost, IndexType numThreadsPerBlock/*, Real **sArray*/ ) ArrayContainer BlockIterHost, int numThreadsPerBlock/*, Real **sArray*/ ) { { //#pragma omp parallel for schedule( dynamic ) //#pragma omp parallel for schedule( dynamic ) for( IndexType i = 0; i < BlockIterHost.getSize(); i++ ) for( IndexType i = 0; i < BlockIterHost.getSize(); i++ ) Loading
src/TNL/Experimental/Hamilton-Jacobi/Solvers/hamilton-jacobi/tnlFastSweepingMethod2D_impl.h +10 −10 Original line number Original line Diff line number Diff line Loading @@ -85,25 +85,25 @@ solve( const MeshPointer& mesh, #ifdef HAVE_MPI #ifdef HAVE_MPI int i = Communicators::MpiCommunicator::GetRank( Communicators::MpiCommunicator::AllGroup ); int i = Communicators::MpiCommunicator::GetRank( Communicators::MpiCommunicator::AllGroup ); printf( "Hello world from rank: %d ", i ); //printf( "Hello world from rank: %d ", i ); //Communicators::MpiCommunicator::Request r = Communicators::MpiCommunicator::ISend( auxPtr, 0, 0, Communicators::MpiCommunicator::AllGroup ); //Communicators::MpiCommunicator::Request r = Communicators::MpiCommunicator::ISend( auxPtr, 0, 0, Communicators::MpiCommunicator::AllGroup ); /*if( i == 1 ) if( i == 1 ) for( int k = 0; k < 16*16; k++ ) /*for( int k = 0; k < 16*16; k++ ) aux[ k ] = 10; aux[ k ] = 10;*/ printf( "1: mesh x: %d\n", mesh->getDimensions().x() ); printf( "1: mesh x: %d\n", mesh->getDimensions().x() ); printf( "1: mesh y: %d\n", mesh->getDimensions().y() ); printf( "1: mesh y: %d\n", mesh->getDimensions().y() ); aux.save("aux_proc1.tnl");*/ //aux.save("aux_proc1.tnl"); if( i == 0 ) if( i == 0 ) printf( "0: mesh x: %d\n", mesh->getDimensions().x() ); printf( "0: mesh x: %d\n", mesh->getDimensions().x() ); printf( "0: mesh y: %d\n", mesh->getDimensions().y() ); printf( "0: mesh y: %d\n", mesh->getDimensions().y() ); aux.save("aux_proc0.tnl"); //aux.save("aux_proc0.tnl"); for( int k = 0; k < 16*16; k++ ) /*for( int k = 0; k < mesh->getDimensions().x()*mesh->getDimensions().y(); k++ ) aux[ k ] = 10; aux[ k ] = 10; for( int k = 0; k < 16; k++ ){ for( int k = 0; k < mesh->getDimensions().x(); k++ ){ for( int l = 0; l < 16; l++ ) for( int l = 0; l < mesh->getDimensions().y(); l++ ) printf("%f.2\t",aux[ k * 16 + l ] ); printf("%f.2\t",aux[ k * 16 + l ] ); printf("\n"); printf("\n"); } }*/ /*bool a = Communicators::MpiCommunicator::IsInitialized(); /*bool a = Communicators::MpiCommunicator::IsInitialized(); if( a ) if( a ) Loading