From cfd00499e6eb18fcb8e4c078fbfe15898b3af7a0 Mon Sep 17 00:00:00 2001 From: Soeren Peters <peters@irmb.tu-bs.de> Date: Mon, 6 Jul 2020 16:58:25 +0200 Subject: [PATCH] Moved GridGenerator to /src/gpu Made VF_GPU work with the "new" cmake --- CMake/3rd/boost.cmake | 2 +- CMake/3rd/mpi.cmake | 2 +- gpu.cmake | 15 +- gpu/src/VirtualFluids_GPU/CMakeLists.txt | 46 + .../Calculation/ForceCalculations.h | 2 +- .../Input/PositionReader.cpp | 6 +- .../Input/VtkGeometryReader.cpp | 2 +- .../VirtualFluids_GPU/Input/kFullReader.cpp | 2 +- .../Interface_OpenFOAM/BoundaryQs.cpp | 318 -- .../Interface_OpenFOAM/BoundaryQs.h | 44 - .../Interface_OpenFOAM/BoundaryValues.cpp | 243 -- .../Interface_OpenFOAM/BoundaryValues.h | 26 - .../Interface_OpenFOAM/CoordNeighborGeoV.cpp | 201 -- .../Interface_OpenFOAM/CoordNeighborGeoV.h | 36 - .../Interface_OpenFOAM/Interface.cpp | 2879 ----------------- .../Interface_OpenFOAM/Interface.h | 37 - .../Interface_OpenFOAM/MeasuredPoints.cpp | 59 - .../Interface_OpenFOAM/MeasuredPoints.h | 20 - .../Interface_OpenFOAM/OffsetScale.cpp | 133 - .../Interface_OpenFOAM/OffsetScale.h | 17 - .../Interface_OpenFOAM/Standard.h | 13 - .../VirtualFluids_GPU/Output/FileWriter.cpp | 2 +- .../Output/UnstructuredGridWriter.hpp | 8 +- .../VirtualFluids_GPU/Parameter/Parameter.cpp | 24 +- .../gpu}/GridGenerator/CMakeLists.txt | 2 +- .../StreetPointFinder/JunctionReader.cpp | 0 .../StreetPointFinder/JunctionReader.h | 0 .../StreetPointFinder/SinkReader.cpp | 0 .../StreetPointFinder/SinkReader.h | 0 .../StreetPointFinder/SourceReader.cpp | 0 .../StreetPointFinder/SourceReader.h | 0 .../StreetPointFinder/StreetPointFinder.cpp | 0 .../StreetPointFinder/StreetPointFinder.h | 0 .../StreetPointFinder/package.include | 0 .../GridGenerator/geometries/Arrow/Arrow.h | 0 .../geometries/Arrow/ArrowImp.cpp | 0 .../GridGenerator/geometries/Arrow/ArrowImp.h | 0 .../geometries/Arrow/package.include | 0 .../geometries/BoundingBox/BoundingBox.cu | 0 .../geometries/BoundingBox/BoundingBox.h | 0 .../BoundingBox/BoundingBoxTest.cpp | 0 .../geometries/BoundingBox/package.include | 0 .../geometries/Conglomerate/Conglomerate.cu | 0 .../geometries/Conglomerate/Conglomerate.h | 0 .../geometries/Conglomerate/package.include | 0 .../GridGenerator/geometries/Cuboid/Cuboid.cu | 0 .../GridGenerator/geometries/Cuboid/Cuboid.h | 0 .../geometries/Cuboid/package.include | 0 .../gpu}/GridGenerator/geometries/Object.cu | 0 .../gpu}/GridGenerator/geometries/Object.h | 0 .../GridGenerator/geometries/Point/Point.cpp | 0 .../GridGenerator/geometries/Point/Point.h | 0 .../geometries/Point/package.include | 0 .../GridGenerator/geometries/Sphere/Sphere.cu | 0 .../GridGenerator/geometries/Sphere/Sphere.h | 0 .../geometries/Sphere/package.include | 0 .../geometries/Triangle/Triangle.cu | 0 .../geometries/Triangle/Triangle.h | 0 .../geometries/Triangle/TriangleException.h | 0 .../geometries/Triangle/package.include | 0 .../TriangularMesh/TriangularMesh.cu | 0 .../TriangularMesh/TriangularMesh.h | 0 .../TriangularMesh/TriangularMeshStrategy.cpp | 0 .../TriangularMesh/TriangularMeshStrategy.h | 0 .../geometries/TriangularMesh/package.include | 0 .../TriangleNeighborFinder.cpp | 0 .../TriangleNeighborFinder.h | 0 .../triangleNeighborFinder/package.include | 0 .../triangleRefinement/TriangleRefinement.cpp | 0 .../triangleRefinement/TriangleRefinement.h | 0 .../triangleRefinement/package.include | 0 .../GridGenerator/geometries/Vertex/Vertex.cu | 0 .../GridGenerator/geometries/Vertex/Vertex.h | 0 .../geometries/Vertex/package.include | 0 .../VerticalCylinder/VerticalCylinder.cu | 0 .../VerticalCylinder/VerticalCylinder.h | 0 .../VerticalCylinder/package.include | 0 .../GridGenerator/geometries/package.include | 0 {gpu/src => src/gpu}/GridGenerator/global.h | 0 .../BoundaryConditions/BoundaryCondition.cpp | 0 .../BoundaryConditions/BoundaryCondition.h | 0 .../grid/BoundaryConditions/Side.cpp | 0 .../grid/BoundaryConditions/Side.h | 0 .../grid/BoundaryConditions/package.include | 0 .../src => src/gpu}/GridGenerator/grid/Cell.h | 0 .../gpu}/GridGenerator/grid/Field.cu | 0 .../gpu}/GridGenerator/grid/Field.h | 0 .../src => src/gpu}/GridGenerator/grid/Grid.h | 0 .../grid/GridBuilder/GridBuilder.h | 0 .../grid/GridBuilder/LevelGridBuilder.cpp | 0 .../grid/GridBuilder/LevelGridBuilder.h | 0 .../grid/GridBuilder/MultipleGridBuilder.cpp | 0 .../grid/GridBuilder/MultipleGridBuilder.h | 0 .../grid/GridBuilder/package.include | 0 .../gpu}/GridGenerator/grid/GridFactory.cpp | 0 .../gpu}/GridGenerator/grid/GridFactory.h | 0 .../gpu}/GridGenerator/grid/GridImp.cu | 0 .../gpu}/GridGenerator/grid/GridImp.h | 0 .../gpu}/GridGenerator/grid/GridInterface.cu | 0 .../gpu}/GridGenerator/grid/GridInterface.h | 0 .../GridCpuStrategy/GridCpuStrategy.cpp | 0 .../GridCpuStrategy/GridCpuStrategy.h | 0 .../GridCpuStrategy/package.include | 0 .../GridGpuStrategy/GridGpuStrategy.cpp | 0 .../GridGpuStrategy/GridGpuStrategy.h | 0 .../GridGpuStrategy/package.include | 0 .../grid/GridStrategy/GridStrategy.h | 0 .../grid/GridStrategy/package.include | 0 .../gpu}/GridGenerator/grid/NodeValues.h | 0 .../GridGenerator/grid/distributions/D3Q13.h | 0 .../GridGenerator/grid/distributions/D3Q19.h | 0 .../GridGenerator/grid/distributions/D3Q27.h | 0 .../GridGenerator/grid/distributions/D3Q7.h | 0 .../grid/distributions/Distribution.cpp | 0 .../grid/distributions/Distribution.h | 0 .../grid/distributions/package.include | 0 .../GridGenerator/grid/kernel/package.include | 0 .../grid/kernel/runGridKernelGPU.cu | 0 .../grid/kernel/runGridKernelGPU.cuh | 0 .../gpu}/GridGenerator/grid/package.include | 0 .../grid/partition/Partition.cpp | 0 .../GridGenerator/grid/partition/Partition.h | 0 .../grid/partition/package.include | 0 .../io/GridVTKWriter/GridVTKWriter.cpp | 0 .../io/GridVTKWriter/GridVTKWriter.h | 0 .../io/GridVTKWriter/package.include | 0 .../gpu}/GridGenerator/io/QLineWriter.cpp | 0 .../gpu}/GridGenerator/io/QLineWriter.h | 0 .../io/STLReaderWriter/STLReader.cpp | 0 .../io/STLReaderWriter/STLReader.h | 0 .../io/STLReaderWriter/STLWriter.cpp | 0 .../io/STLReaderWriter/STLWriter.h | 0 .../io/STLReaderWriter/package.include | 0 .../SimulationFileNames.cpp | 0 .../SimulationFileNames.h | 0 .../SimulationFileWriter.cpp | 0 .../SimulationFileWriter.h | 0 .../io/SimulationFileWriter/package.include | 0 .../PolyDataWriterWrapper.cpp | 0 .../VTKWriterWrapper/PolyDataWriterWrapper.h | 0 .../UnstructuredGridWrapper.cpp | 0 .../UnstructuredGridWrapper.h | 0 .../io/VTKWriterWrapper/package.include | 0 .../gpu}/GridGenerator/io/package.include | 0 .../gpu}/GridGenerator/package.include | 0 .../GridGenerator/utilities/communication.h | 0 .../utilities/cuda/CudaErrorCheck.cu | 0 .../utilities/cuda/LaunchParameter.cu | 0 .../utilities/cuda/LaunchParameter.cuh | 0 .../utilities/cuda/cudaDefines.h | 0 .../utilities/cuda/cudaKernelCall.h | 0 .../utilities/cuda/package.include | 0 .../gpu}/GridGenerator/utilities/math/Math.cu | 0 .../gpu}/GridGenerator/utilities/math/Math.h | 0 .../utilities/math/package.include | 0 .../GridGenerator/utilities/package.include | 0 .../transformator/ArrowTransformator.cpp | 0 .../transformator/ArrowTransformator.h | 0 .../utilities/transformator/Transformator.cpp | 0 .../utilities/transformator/Transformator.h | 0 .../transformator/TransformatorImp.cpp | 0 .../transformator/TransformatorImp.h | 0 .../utilities/transformator/package.include | 0 163 files changed, 80 insertions(+), 4059 deletions(-) create mode 100644 gpu/src/VirtualFluids_GPU/CMakeLists.txt delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryQs.cpp delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryQs.h delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryValues.cpp delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryValues.h delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/CoordNeighborGeoV.cpp delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/CoordNeighborGeoV.h delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Interface.cpp delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Interface.h delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/MeasuredPoints.cpp delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/MeasuredPoints.h delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/OffsetScale.cpp delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/OffsetScale.h delete mode 100644 gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Standard.h rename {gpu/src => src/gpu}/GridGenerator/CMakeLists.txt (98%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/JunctionReader.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/JunctionReader.h (100%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/SinkReader.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/SinkReader.h (100%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/SourceReader.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/SourceReader.h (100%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/StreetPointFinder.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/StreetPointFinder.h (100%) rename {gpu/src => src/gpu}/GridGenerator/StreetPointFinder/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Arrow/Arrow.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Arrow/ArrowImp.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Arrow/ArrowImp.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Arrow/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/BoundingBox/BoundingBox.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/BoundingBox/BoundingBox.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/BoundingBox/BoundingBoxTest.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/BoundingBox/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Conglomerate/Conglomerate.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Conglomerate/Conglomerate.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Conglomerate/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Cuboid/Cuboid.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Cuboid/Cuboid.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Cuboid/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Object.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Object.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Point/Point.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Point/Point.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Point/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Sphere/Sphere.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Sphere/Sphere.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Sphere/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Triangle/Triangle.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Triangle/Triangle.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Triangle/TriangleException.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Triangle/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/TriangularMesh.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/TriangularMesh/triangleRefinement/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Vertex/Vertex.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Vertex/Vertex.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/Vertex/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/VerticalCylinder/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/geometries/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/global.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/BoundaryConditions/Side.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/BoundaryConditions/Side.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/BoundaryConditions/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/Cell.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/Field.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/Field.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/Grid.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridBuilder/GridBuilder.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridBuilder/LevelGridBuilder.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridBuilder/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridFactory.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridFactory.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridImp.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridImp.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridInterface.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridInterface.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridStrategy/GridCpuStrategy/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridStrategy/GridGpuStrategy/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridStrategy/GridStrategy.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/GridStrategy/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/NodeValues.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/distributions/D3Q13.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/distributions/D3Q19.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/distributions/D3Q27.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/distributions/D3Q7.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/distributions/Distribution.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/distributions/Distribution.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/distributions/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/kernel/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/kernel/runGridKernelGPU.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/kernel/runGridKernelGPU.cuh (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/partition/Partition.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/partition/Partition.h (100%) rename {gpu/src => src/gpu}/GridGenerator/grid/partition/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/io/GridVTKWriter/GridVTKWriter.h (100%) rename {gpu/src => src/gpu}/GridGenerator/io/GridVTKWriter/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/io/QLineWriter.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/io/QLineWriter.h (100%) rename {gpu/src => src/gpu}/GridGenerator/io/STLReaderWriter/STLReader.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/io/STLReaderWriter/STLReader.h (100%) rename {gpu/src => src/gpu}/GridGenerator/io/STLReaderWriter/STLWriter.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/io/STLReaderWriter/STLWriter.h (100%) rename {gpu/src => src/gpu}/GridGenerator/io/STLReaderWriter/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h (100%) rename {gpu/src => src/gpu}/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h (100%) rename {gpu/src => src/gpu}/GridGenerator/io/SimulationFileWriter/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.h (100%) rename {gpu/src => src/gpu}/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.h (100%) rename {gpu/src => src/gpu}/GridGenerator/io/VTKWriterWrapper/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/io/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/communication.h (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/cuda/CudaErrorCheck.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/cuda/LaunchParameter.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/cuda/LaunchParameter.cuh (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/cuda/cudaDefines.h (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/cuda/cudaKernelCall.h (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/cuda/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/math/Math.cu (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/math/Math.h (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/math/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/package.include (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/transformator/ArrowTransformator.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/transformator/ArrowTransformator.h (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/transformator/Transformator.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/transformator/Transformator.h (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/transformator/TransformatorImp.cpp (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/transformator/TransformatorImp.h (100%) rename {gpu/src => src/gpu}/GridGenerator/utilities/transformator/package.include (100%) diff --git a/CMake/3rd/boost.cmake b/CMake/3rd/boost.cmake index 0426ff8f0..fae5cdf65 100644 --- a/CMake/3rd/boost.cmake +++ b/CMake/3rd/boost.cmake @@ -20,5 +20,5 @@ macro(linkBoost components) vf_get_library_name(library_name) find_package( Boost REQUIRED COMPONENTS ${components}) target_include_directories(${library_name} PRIVATE ${Boost_INCLUDE_DIR}) - target_link_libraries(${library_name} ${Boost_LIBRARIES}) + target_link_libraries(${library_name} PRIVATE ${Boost_LIBRARIES}) endmacro(linkBoost) diff --git a/CMake/3rd/mpi.cmake b/CMake/3rd/mpi.cmake index b3e9724f4..9cfe89dc9 100644 --- a/CMake/3rd/mpi.cmake +++ b/CMake/3rd/mpi.cmake @@ -5,5 +5,5 @@ vf_get_library_name(library_name) find_package(MPI REQUIRED) target_include_directories(${library_name} PRIVATE ${MPI_C_INCLUDE_PATH}) -target_link_libraries(${library_name} ${MPI_C_LIBRARIES}) +target_link_libraries(${library_name} PRIVATE ${MPI_C_LIBRARIES}) diff --git a/gpu.cmake b/gpu.cmake index 66b478204..da629b7c8 100644 --- a/gpu.cmake +++ b/gpu.cmake @@ -82,7 +82,7 @@ ENDIF(MSVC) ### OPTIONS ### ############################################################# option(BUILD_SHARED_LIBS "Build shared libraries" ON ) -option(VF.BUILD_VF_GPU "Build VirtualFluids GPU" OFF ) +option(VF.BUILD_VF_GPU "Build VirtualFluids GPU" ON ) option(VF.BUILD_VF_GKS "Build VirtualFluids GKS" OFF ) option(VF.BUILD_VF_TRAFFIC "Build VirtualFluids Traffic" OFF) option(VF.BUILD_JSONCPP "Builds json cpp " OFF) @@ -126,7 +126,7 @@ set(CMAKE_CUDA_FLAGS_DEBUG " -G" CACHE STRING "" FORCE) ### Core ### ############################################################# -add_subdirectory(gpu/src/GridGenerator) +add_subdirectory(src/gpu/GridGenerator) #add_subdirectory(3rdParty/metis/metis-5.1.0) ############################################################# @@ -134,17 +134,18 @@ add_subdirectory(gpu/src/GridGenerator) ############################################################# IF (VF.BUILD_VF_GPU) - add_subdirectory(targets/libs/VirtualFluids_GPU) + add_subdirectory(gpu/src/VirtualFluids_GPU) #add_subdirectory(targets/apps/LBM/lbmTest) #add_subdirectory(targets/apps/LBM/metisTest) #add_subdirectory(targets/apps/LBM/Basel) #add_subdirectory(targets/apps/LBM/BaselNU) #add_subdirectory(targets/apps/LBM/BaselMultiGPU) - add_subdirectory(targets/apps/LBM/DrivenCavity) - add_subdirectory(targets/apps/LBM/gridGeneratorTest) - add_subdirectory(targets/apps/LBM/TGV_3D) - add_subdirectory(targets/apps/LBM/TGV_3D_MultiGPU) + + #add_subdirectory(targets/apps/LBM/DrivenCavity) + #add_subdirectory(targets/apps/LBM/gridGeneratorTest) + #add_subdirectory(targets/apps/LBM/TGV_3D) + #add_subdirectory(targets/apps/LBM/TGV_3D_MultiGPU) ELSE() MESSAGE( STATUS "exclude Virtual Fluids GPU." ) ENDIF() diff --git a/gpu/src/VirtualFluids_GPU/CMakeLists.txt b/gpu/src/VirtualFluids_GPU/CMakeLists.txt new file mode 100644 index 000000000..6f1f63866 --- /dev/null +++ b/gpu/src/VirtualFluids_GPU/CMakeLists.txt @@ -0,0 +1,46 @@ +#include (${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/Cuda/Link.cmake) +#linkCuda(${targetName}) +#include (${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/MPI/Link.cmake) +#linkMPI(${targetName}) +#include (${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/Boost/Link.cmake) +#linkBoost(${targetName} "serialization") + + +IF(MSVC) + set(libsToLink ws2_32 GridGenerator basics Traffic) # ws_32 throws an error on Phoenix +ELSE(MSVC) + #set(libsToLink GridGenerator VirtualFluidsBasics Core Traffic) + set(libsToLink GridGenerator basics) +ENDIF(MSVC) + + +vf_add_library(BUILDTYPE shared DEPENDS ${libsToLink}) + +include (${CMAKE_PATH}/3rd/cuda.cmake) +include (${CMAKE_PATH}/3rd/mpi.cmake) +include (${CMAKE_PATH}/3rd/boost.cmake) +linkBoost ("serialization") + +vf_get_library_name(library_name) +target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics") +target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/gpu") +target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/gpu/GridGenerator") +target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics/Core") + + + +#set(includeDirectories ${CMAKE_SOURCE_DIR}/src/${targetName} +# ${CMAKE_SOURCE_DIR}/src +# ${CMAKE_SOURCE_DIR}/src/GridGenerator +# ${CMAKE_SOURCE_DIR}/src/VirtualFluidsBasics +# ${CMAKE_SOURCE_DIR}/src/Core +# ${CMAKE_SOURCE_DIR}/src/Traffic +# ) + +#SET(TPN_WIN32 "/EHsc") +#https://stackoverflow.com/questions/6832666/lnk2019-when-including-asio-headers-solution-generated-with-cmake +#https://stackoverflow.com/questions/27442885/syntax-error-with-stdnumeric-limitsmax + +IF(MSVC) + set_target_properties(${library_name} PROPERTIES LINK_FLAGS "/ignore:4251") +ENDIF(MSVC) diff --git a/gpu/src/VirtualFluids_GPU/Calculation/ForceCalculations.h b/gpu/src/VirtualFluids_GPU/Calculation/ForceCalculations.h index bed273e99..3f69a6119 100644 --- a/gpu/src/VirtualFluids_GPU/Calculation/ForceCalculations.h +++ b/gpu/src/VirtualFluids_GPU/Calculation/ForceCalculations.h @@ -2,7 +2,7 @@ #define FORCE_CALCULATIONS_H #include "Parameter/Parameter.h" -#include "VirtualFluidsBasics/basics/utilities/UbSystem.h" +#include "basics/utilities/UbSystem.h" #include <iostream> #include <stdio.h> diff --git a/gpu/src/VirtualFluids_GPU/Input/PositionReader.cpp b/gpu/src/VirtualFluids_GPU/Input/PositionReader.cpp index ff8f88d99..82a4dd9ea 100644 --- a/gpu/src/VirtualFluids_GPU/Input/PositionReader.cpp +++ b/gpu/src/VirtualFluids_GPU/Input/PositionReader.cpp @@ -1,6 +1,6 @@ #include "PositionReader.h" -#include "VirtualFluidsBasics/basics/utilities/UbFileInputASCII.h" +#include "basics/utilities/UbFileInputASCII.h" static const int E = dirE; //static const int E = 0; static const int W = dirW; //static const int W = 1; @@ -89,7 +89,7 @@ const int INVDIR[] = { INV_E, INV_ZERO, //INV_BSW = TNE = 18 = dirZERO = ZERO= INV_ZERO INV_TNE}; //INV_ZERO= ZERO = 26 = dirBSW = BSW = INV_TNE -static const int optionDigits = 2; //--> 2 bits für secondary Option +static const int optionDigits = 2; //--> 2 bits f�r secondary Option static const long long maxOptionVal = ( 1<<optionDigits ) - 1; //2^3-1 -> 7 float q[27]; long long noslipBoundaryFlags; @@ -494,7 +494,7 @@ void PositionReader::readFileNoSlipBcQs(const std::string fileName, Parameter* p // test = 100.; //} - ////TÄST -> shit + ////T�ST -> shit //para->getParH(level)->QWall.qread[u] = 0.5f; //orig para->getParH(level)->QWall.qread[u] = test; diff --git a/gpu/src/VirtualFluids_GPU/Input/VtkGeometryReader.cpp b/gpu/src/VirtualFluids_GPU/Input/VtkGeometryReader.cpp index 2bb49c5c2..39cbde1d8 100644 --- a/gpu/src/VirtualFluids_GPU/Input/VtkGeometryReader.cpp +++ b/gpu/src/VirtualFluids_GPU/Input/VtkGeometryReader.cpp @@ -1,6 +1,6 @@ #include "VtkGeometryReader.h" -#include "VirtualFluidsBasics/basics/utilities/UbFileInputASCII.h" +#include "basics/utilities/UbFileInputASCII.h" void VtkGeometryReader::readFile(const std::string& fileName, unsigned int* geoMat) { diff --git a/gpu/src/VirtualFluids_GPU/Input/kFullReader.cpp b/gpu/src/VirtualFluids_GPU/Input/kFullReader.cpp index fe738fda1..69f20d48d 100644 --- a/gpu/src/VirtualFluids_GPU/Input/kFullReader.cpp +++ b/gpu/src/VirtualFluids_GPU/Input/kFullReader.cpp @@ -1,6 +1,6 @@ #include "kFullReader.h" -#include "VirtualFluidsBasics/basics/utilities/UbFileInputASCII.h" +#include "basics/utilities/UbFileInputASCII.h" void kFullReader::readFileForAlloc(const std::string fileName, Parameter* para) { diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryQs.cpp b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryQs.cpp deleted file mode 100644 index 74997af0b..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryQs.cpp +++ /dev/null @@ -1,318 +0,0 @@ -#include "BoundaryQs.h" - -#include <stdio.h> -#include <stdlib.h> - -using namespace std; - - -BoundaryQs::BoundaryQs(string ad, bool binaer) -{ - - if(binaer == true) { - file.open(ad.c_str(), ios::in | ios::binary); - - if (!file) { - cerr << "Fehler beim Oeffnen_Qs" <<endl; - exit(1); - } - - init_Binary(); - } else { - file.open(ad.c_str(), ios::in ); - - if (!file) { - cerr << "Fehler beim Oeffnen_Qs" <<endl; - exit(1); - } - - init(); - - } -} -BoundaryQs::BoundaryQs(string ad, Parameter* para, string str, bool binaer){ - - if (binaer==true) file.open(ad.c_str(), ios::in | ios::binary); - else file.open(ad.c_str(), ios::in); - - if (!file) { - para->setObj(str, false); - } else { - if(binaer == true) { - init_Binary(); - } else { - init(); - } - para->setObj(str, true); - } - -} -BoundaryQs::BoundaryQs(){ -} - - - -BoundaryQs::~BoundaryQs(void) -{ - file.close(); -} - -void BoundaryQs::init() { - vector<uint32_t> vec1D_code; - - file.clear(); - file.seekg(0, ios::beg); - string bufferString; - unsigned int bufferInt; - doubflo bufferDouble; - - - getline(file, bufferString); //level einlesen - level = atoi(bufferString.c_str()); - column = 27; - vec_Size.resize(level + 1); - vec3D_data.resize(level + 1); - vec2D_index.resize(level + 1); - - - //schleife zum Einlesen der Werte - for (unsigned int j = 0; j <= level; j++) { - vec3D_data[j].resize(column); - getline(file, bufferString); - bufferInt = atoi(bufferString.c_str()); //eingelesene Zeile wird zum Integer gecastet - vec_Size[j] = bufferInt; - for (int i = 0; i < column; i++) { - vec3D_data[j][i].resize(vec_Size[j], -1); - } - vec2D_index[j].resize(vec_Size[j]); - if (bufferInt == 0) {//falls die Groesse Null ist, muss keine Zeile uebersprungen werden - continue; - } - vec1D_code.resize(vec_Size[j]); - - for (unsigned int elem = 0; elem < vec_Size[j]; elem++) - { - - - - int zaehler = 26; - file >> bufferInt; - vec2D_index[j][elem] = bufferInt; - //cout << "Index: " << bufferInt << endl; - - bufferInt = atoi(bufferString.c_str()); - file >> bufferInt; - vec1D_code[elem] = bufferInt; - //cout << vec1D_code[elem] << endl; - //getline(file, bufferString); // Code ueberspringen - - while (vec1D_code[elem] != 0){ - - if (vec1D_code[elem] % 2 == 1){ - - file >> bufferDouble; - - vec3D_data[j][zaehler][elem] = bufferDouble; - } - vec1D_code[elem] /= 2; - zaehler--; - } - getline(file, bufferString); - - } - - vec1D_code.clear(); - }// ende for-schleife zum Einlesen der Werte - -} - - - -void BoundaryQs::init_Binary() { - - vector<uint32_t> vec1D_code; - - file.clear(); - file.seekg(0, ios::beg); - string bufferString; - unsigned int bufferInt; - doubflo bufferDouble; - uint32_t bufferUint32_t; - - - getline(file, bufferString); //level einlesen - level = atoi(bufferString.c_str()); - column = 27; - vec_Size.resize(level + 1); - vec3D_data.resize(level + 1); - vec2D_index.resize(level + 1); - - for (unsigned int j = 0; j <= level; j++) { - vec3D_data[j].resize(column); - getline(file, bufferString); - bufferInt = atoi(bufferString.c_str()); - vec_Size[j] = bufferInt; - for (int i = 0; i < column; i++) { - vec3D_data[j][i].resize(vec_Size[j], -1); - } - vec2D_index[j].resize(vec_Size[j]); - if (bufferInt == 0) {//falls die Groesse Null ist, muss keine Zeile uebersprungen werden - continue; - } - vec1D_code.resize(vec_Size[j]); - - for (unsigned int elem = 0; elem < vec_Size[j]; elem++) - { - int zaehler = 26; - file.read((char*)&bufferInt,sizeof(int)); - vec2D_index[j][elem] = bufferInt; - - - file.read((char*)&bufferUint32_t,sizeof(uint32_t)); - vec1D_code[elem] = bufferUint32_t; - while (vec1D_code[elem] != 0){ - - if (vec1D_code[elem] % 2 == 1){ - - file.read((char*)&bufferDouble,sizeof(double)); - vec3D_data[j][zaehler][elem] = bufferDouble; - } - vec1D_code[elem] /= 2; - zaehler--; - } - getline(file, bufferString); - } - vec1D_code.clear(); - } -} - -vector<vector<vector<doubflo> > > BoundaryQs::setgetBoundarys(vector<vector<vector<doubflo> > > qs) { - - int j=0; - int i=0; - for (vector<vector<vector<doubflo> > >::iterator it = vec3D_data.begin() ; it != vec3D_data.end(); it++) { - i = 0; - for(vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - - for(vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - qs[j][i].push_back(*it3); - } - i++; - } - j++; - } - vec3D_data.clear(); - - return qs; -} - -vector<vector<vector<unsigned int> > > BoundaryQs::setgetBoundarys(vector<vector<vector<unsigned int> > > qs) { - - cout << "Laenge 1 vec3D_data: " << vec3D_data.size() << endl; - cout << "Laenge 2 vec3D_data: " << vec3D_data[0].size() << endl; - cout << "Laenge 3 vec3D_data: " << vec3D_data[0][0].size() << endl; - int j = 0; - int i = 0; - for (vector<vector<vector<doubflo> > >::iterator it = vec3D_data.begin(); it != vec3D_data.end(); it++) { - i = 0; - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - qs[j][i].push_back(*it3); - } - i++; - } - j++; - } - vec3D_data.clear(); - - return qs; -} - - - - -vector<vector<unsigned int> > BoundaryQs::setgetIndex(vector<vector<unsigned int> > index) { - - int i=0; - - for(vector<vector<unsigned int> >::iterator it2 = vec2D_index.begin(); it2 != vec2D_index.end(); it2++){ - - for(vector<unsigned int>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - if(*it3!=0) { - index[i].push_back(*it3); - } - } - i++; - } - - vec2D_index.clear(); - return index; -} - -void BoundaryQs::initArray(doubflo* ptr, unsigned int level, unsigned int column) { - int zaehler=0; - int zaehler2=0; - int n=0; - if (ptr != NULL) { //nur wenn genug Speicher vorhanden ist - for (vector<vector<vector<doubflo> > >::iterator it = vec3D_data.begin() ; it != vec3D_data.end(); it++) { - if(zaehler==level) { - for(vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - if(zaehler2==column) { - for(vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - ptr[n]=*it3; - n++; - } - } - zaehler2++; // zaehlt die Spalte mit - } - } - zaehler++; // zaehlt das Level mit - } - - } -} - -void BoundaryQs::initIndex(/*unsigned*/ int *ptr, unsigned int level) { - int zaehler = 0; - unsigned int n=0; - if (ptr !=NULL) { - for (vector<vector<unsigned int> >::iterator it = vec2D_index.begin() ; it != vec2D_index.end(); it++) { - if ( zaehler==level) { - for(vector<unsigned int>::iterator it2 = it->begin(); it2 != it->end(); it2++) { - ptr[n]=*it2; - n++; - } - } - zaehler++; - } - } -} - -void BoundaryQs::initProcNeighbor(int* ptr, unsigned int level, unsigned int column) { - int zaehler=0; - int zaehler2=0; - int n=0; - if (ptr != NULL) { //nur wenn genug Speicher vorhanden ist - for (vector<vector<vector<doubflo> > >::iterator it = vec3D_data.begin() ; it != vec3D_data.end(); it++) { - if(zaehler==level) { - for(vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - if(zaehler2==column) { - for(vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - ptr[n]=(int)*it3; - n++; - } - } - zaehler2++; // zaehlt die Spalte mit - } - } - zaehler++; // zaehlt das Level mit - } - - } -} - -int BoundaryQs::getcolumn(){ - return this->column; -} - diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryQs.h b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryQs.h deleted file mode 100644 index ed333d46b..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryQs.h +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once -#include "Standard.h" -#include "CoordNeighborGeoV.h" -#include "Parameter/Parameter.h" - -using namespace std; - -class BoundaryQs - :public CoordNeighborGeoV -{ -protected: - vector<doubflo> vec1D_column; - vector< vector<doubflo> >vec2D_lvl; - vector< vector<vector<doubflo> > >vec3D_data; - - - vector<unsigned int> vec1D_index; - vector< vector<unsigned int> >vec2D_index; - - string boun; - int column; - -public: - BoundaryQs(); - BoundaryQs(string q, bool binaer); - BoundaryQs(string q, Parameter* para, string str, bool binaer); - ~BoundaryQs(void); - void init(); - void init_Binary(); - - void init_shortQs(); - - void initArray(doubflo* ptr, unsigned int level, unsigned int column); - void initProcNeighbor(int* ptr, unsigned int level, unsigned int column); - void initIndex(/*unsigned*/ int *ptr, unsigned int level); - - vector<vector<vector<doubflo> > > setgetBoundarys(vector<vector<vector<doubflo> > > qs); - vector<vector<vector<unsigned int> > > setgetBoundarys(vector<vector<vector<unsigned int> > > qs); - vector<vector<unsigned int> > setgetIndex(vector<vector<unsigned int> > index); - int getcolumn(); - - void sout(); -}; - diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryValues.cpp b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryValues.cpp deleted file mode 100644 index 05bf4d1f5..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryValues.cpp +++ /dev/null @@ -1,243 +0,0 @@ -#include "BoundaryValues.h" -#include <stdio.h> -#include <stdlib.h> - - -BoundaryValues::BoundaryValues(string ad) -{ - file.open(ad.c_str(), ios::in); - - if (!file) { - cerr << "Fehler beim Oeffnen_Values" <<endl; - exit(1); - } - init(); -} - - -BoundaryValues::BoundaryValues(string ad, Parameter* para, string str) -{ - if (!file) { - cerr << "Fehler beim Oeffnen_Values" <<endl; - exit(1); - } - - - file.open(ad.c_str(), ios::in); - if (!file) { - para->setObj(str, false); - } else { - init(); - para->setObj(str, true); - } -} - - -BoundaryValues::BoundaryValues(int neighbor, Parameter* para, string sor) -{ - string ad = para->getPossNeighborFiles(sor)[neighbor]; - file.open(ad.c_str(), ios::in); - - if (!file) { - para->setIsNeighbor(false); - } else { - para->setIsNeighbor(true); - init(); - } -} - - -BoundaryValues::BoundaryValues(int neighbor, Parameter* para, string sor, string dir) -{ - if (dir=="X") - { - string ad = para->getPossNeighborFilesX(sor)[neighbor]; - file.open(ad.c_str(), ios::in); - - if (file.fail()) { - para->setIsNeighborX(false); - } else { - para->setIsNeighborX(true); - init(); - } - } - else if (dir=="Y") - { - string ad = para->getPossNeighborFilesY(sor)[neighbor]; - file.open(ad.c_str(), ios::in); - - if (file.fail()) { - para->setIsNeighborY(false); - } else { - para->setIsNeighborY(true); - init(); - } - } - else - { - string ad = para->getPossNeighborFilesZ(sor)[neighbor]; - file.open(ad.c_str(), ios::in); - - if (file.fail()) { - para->setIsNeighborZ(false); - } else { - para->setIsNeighborZ(true); - init(); - } - } -} - - -BoundaryValues::~BoundaryValues(void) -{ - file.close(); -} - -void BoundaryValues::init() { - - string bufferString; - unsigned int bufferInt; - doubflo bufferDouble; - - - getline(file,bufferString); - bo=bufferString; // "bo" speichert die Art der Randbedingung - - getline(file,bufferString);//level einlesen - level = atoi(bufferString.c_str()); - getline(file,bufferString);//ueberspringen der groesse - - int counter = 0; - int laeuftmit = 0; - while(counter <= 0 && laeuftmit <= level) { //schleife laeuft bis spaltenanzahl gefunden wurde - getline(file, bufferString); - for(unsigned int i = 0; i < bufferString.length(); i++) - { - if (bufferString[i] == ' ') - { - counter++; - } - } - laeuftmit++; - } - int column = counter; - //cout << "column: " << column << endl; - - - if(bo=="noSlip"||bo=="slip") { - - vec1D_index.push_back(0); - vec2D_index.push_back(vec1D_index); - vec1D_index.clear(); - - vec1D_column.push_back(0); - vec2D_lvl.push_back(vec1D_column); - vec1D_column.clear(); - vec3D_data.push_back(vec2D_lvl); - vec2D_lvl.clear(); - } - - else //if (bo == "velocity" || bo == "pressure" || bo == "periodic_x" || bo == "periodic_y" || bo == "periodic_z") { - { - file.clear(); - file.seekg (0, ios::beg); - getline(file,bufferString); //Art wird uebersprungen - getline(file,bufferString); //level wird uebersprungen - - ////Levelgroessen aus der dritten Zeile werden eingelesen------------------------------------------------------------------// - for(unsigned int i=0; i<=level; i++) { - getline(file,bufferString); - bufferInt = atoi(bufferString.c_str()); //eingelesene Zeile wird zum Integer gecastet - vec_Size.push_back(bufferInt); - if(bufferInt!=0) {//falls die Groesse Null ist, muss keine Zeile uebersprungen werden - for(unsigned int j=0; j<bufferInt;j++){ - getline(file,bufferString);// ueberspringt alles bis zur naechsten Groesse - } - } - } - - //Index wird in den Values eingelesen------------------------------------------------------------------------------------// - file.clear(); - file.seekg (0, ios::beg); - getline(file,bufferString); //Art wird uebersprungen - getline(file,bufferString); //level wird uebersprungen - - vec3D_data.resize(level+1); - for (unsigned int i = 0; i < vec3D_data.size(); i++) { - vec3D_data[i].resize(column); - for (unsigned int j = 0; j < vec3D_data[i].size(); j++) { - vec3D_data[i][j].resize(vec_Size[i]); - } - } - - vec2D_index.resize(level+1); - for (unsigned int i = 0; i < vec2D_index.size(); i++) { - vec2D_index[i].resize(vec_Size[i]); - } - - //schleife zum Einlesen der Werte - for (unsigned int j = 0; j <= level; j++) { - if(vec_Size[j]==0) { - getline(file,bufferString); - continue; - } //ist eine Groesse=0 -> continue - - getline(file,bufferString); // Groesse ueberspringen - for (unsigned int elem = 0; elem < vec_Size[j]; elem++) - { - file >> bufferInt; - vec2D_index[j][elem]=bufferInt; - for (int col = 0; col < column; col++) - { - file >> bufferDouble; - vec3D_data[j][col][elem] = bufferDouble; - } - } - getline(file,bufferString); - } // ende for-schleife zum Einlesen der Werte - } // ende if -} - - -vector<unsigned int> BoundaryValues::getIndex(unsigned int level) { - int zaehler = 0; - for (vector<vector<unsigned int> >::iterator it = vec2D_index.begin() ; it != vec2D_index.end(); it++) { - if ( zaehler==level) {return *it;} - zaehler++; - } - cout<<"Levelgroesse nicht zulaessig"<<endl; - exit(1); -} - - -vector<doubflo> BoundaryValues::getVec(unsigned int level, unsigned int column) { - int zaehler1=0; - int zaehler2=0; - - for (vector<vector<vector<doubflo> > >::iterator it = vec3D_data.begin() ; it != vec3D_data.end(); it++) { - if (zaehler1==level) { - for(vector<vector<doubflo> >::iterator it2 = it->begin() ; it2 != it->end(); it2++) { - if(zaehler2==column) {return *it2;} - zaehler2++; - } - } - zaehler1++; - } - cout<<"Levelgroesse nicht zulaessig"<<endl; - exit(1); -} - - -string BoundaryValues::getWay() { - return this->bo; -} - - -void BoundaryValues::setProcNeighbor(bool pN){ - procNeighbor = pN; -} - - -bool BoundaryValues::getProcNeighbor(){ - return procNeighbor; -} diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryValues.h b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryValues.h deleted file mode 100644 index b366c70df..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/BoundaryValues.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once -#include "Standard.h" -#include "BoundaryQs.h" - -class BoundaryValues - : public BoundaryQs -{ -private: - string bo; - bool procNeighbor; - -public: - BoundaryValues(string ad); - BoundaryValues(string ad, Parameter* para, string str); - BoundaryValues(int neighbor, Parameter* para, string sor); - BoundaryValues(int neighbor, Parameter* para, string sor, string dir); - ~BoundaryValues(void); - void init(); - vector<unsigned int> getIndex(unsigned int level); - vector<doubflo> getVec(unsigned int level, unsigned int column); - string getWay(); - - void setProcNeighbor(bool pN); - bool getProcNeighbor(); -}; - diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/CoordNeighborGeoV.cpp b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/CoordNeighborGeoV.cpp deleted file mode 100644 index f52d1b1b7..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/CoordNeighborGeoV.cpp +++ /dev/null @@ -1,201 +0,0 @@ -#include "CoordNeighborGeoV.h" -#include <iomanip> -#include <stdio.h> -#include <stdlib.h> - -using namespace std; - -CoordNeighborGeoV::CoordNeighborGeoV(void){ -} - -CoordNeighborGeoV::CoordNeighborGeoV(string ad, bool binaer, bool coord){ - file.open(ad.c_str(), ios::in | ios::binary); - - if (!file) { - cerr << "Fehler beim Oeffnen_CoordNeighborGeo" <<endl; - exit(1); - } - if(binaer==true) { - init_Binary(coord); - } else { - init(coord); - } - -} - -CoordNeighborGeoV::~CoordNeighborGeoV(){ - file.close(); -} - -void CoordNeighborGeoV::init(bool coord) { - //Level aus der ersten Zeile wird eingelesen - string buffer; - unsigned int bufferInt; - doubflo bufferDoubflo; - - getline(file,buffer); - level = atoi(buffer.c_str()); - - //Schleife zum Einlesen der Levelgroessen - for(unsigned int i=0; i<=level; i++) { - getline(file,buffer); - bufferInt = atoi(buffer.c_str()); //eingelesene Zeile wird zum Integer gecastet - vec_Size.push_back(bufferInt); - getline(file,buffer); - } - file.clear(); - file.seekg (0, ios::beg); // file wird wieder auf den Anfang gesetzt - getline(file,buffer); //level wird ignoriert - - - //einlesen der Werte - if(coord == true) { - vec2D_data_Coord.resize(level+1); - for(unsigned lvl = 0; lvl <= level; lvl++){ - getline(file,buffer); // Groesse ignorieren - for (unsigned int i = 0; i <= vec_Size[lvl]; i++) - { - file >> bufferDoubflo; - vec2D_data_Coord[lvl].push_back(bufferDoubflo); - } - getline(file, buffer); - } - } else { - vec2D_data.resize(level+1); - for(unsigned lvl = 0; lvl <= level; lvl++){ - getline(file,buffer); // Groesse ignorieren - for (unsigned int i = 0; i <= vec_Size[lvl]; i++) - { - file >> bufferInt; - vec2D_data[lvl].push_back(bufferInt); - } - getline(file, buffer); - } - } // ende else -} // ende methode - - -void CoordNeighborGeoV::init_Binary(bool coord) { - char c; - string buffer; - unsigned int bufferInt; - double bufferDoubflo; - - //level einlesen - getline(file,buffer); - level = atoi(buffer.c_str()); - //Groesse des ersten Levels einlesen - getline(file,buffer); - bufferInt = atoi(buffer.c_str()); - vec_Size.push_back(bufferInt); - - - for(unsigned int i=0; i<=level;i++) { - if(coord == true) { - file >> bufferDoubflo; - vec_data_Coord.push_back(bufferDoubflo);//erste null - file.get(c);//ueberspringt leerzeichen - - for(unsigned int j=0; j<vec_Size[i]; j++) { - file.read((char*)&bufferDoubflo,sizeof(double)); - vec_data_Coord.push_back((doubflo)bufferDoubflo); - } - - vec2D_data_Coord.push_back(vec_data_Coord); - vec_data_Coord.clear(); - } else { - file >> bufferInt; - vec_data.push_back(bufferInt);//erste null - file.get(c);//ueberspringt leerzeichen - - for(unsigned int j=0; j<vec_Size[i]; j++) { - file.read((char*)&bufferInt,sizeof(unsigned int)); - vec_data.push_back(bufferInt); - } - - vec2D_data.push_back(vec_data); - vec_data.clear(); - } - - if(i==level) break; - file.get(c);//ueberspringt Leerzeichen - getline(file,buffer); - bufferInt = atoi(buffer.c_str()); - vec_Size.push_back(bufferInt); - } -} - - -unsigned int CoordNeighborGeoV::getLevel() { - return level; -} - -unsigned int CoordNeighborGeoV::getSize(unsigned int level) { - int zaehler=0; - for (vector<unsigned int>::iterator it = vec_Size.begin() ; it != vec_Size.end(); it++) - {if (zaehler == level){return *it; break;}// durchlauft den Vektor mit den Größen. Break wenn level dem Schleifendurchgang entspricht - zaehler++; - - } - //cout<<"Levelgroesse nicht zulaessig"<<endl; - cout<<"Levelgroesse nicht zulaessig zaehler: "<< zaehler << " level: "<< level << " vec_Size.size(): " << vec_Size.size() <<endl; - exit(1); -} - - -void CoordNeighborGeoV::initArray(unsigned int *int_ptr, unsigned int level) { - - int zaehler=0; - unsigned int n=0; - if (int_ptr != NULL) { //nur wenn genug Speicher vorhanden ist - for (vector<vector<unsigned int> >::iterator it = vec2D_data.begin() ; it != vec2D_data.end(); it++) { - if(zaehler==level) { - for(vector<unsigned int>::iterator it2 = it->begin(); it2 != it->end(); it2++){ - int_ptr[n]=*it2; - n++; - } - } - zaehler++; - } - } -} - -vector<unsigned int> CoordNeighborGeoV::getVec(unsigned int level) { - int zaehler=0; - for (vector<vector<unsigned int> >::iterator it = vec2D_data.begin() ; it != vec2D_data.end(); it++) { - if (zaehler==level) {return *it;} - zaehler++; - } - cout<<"Levelgroesse nicht zulaessig"<<endl; - exit(1); -} - -void CoordNeighborGeoV::setVec(unsigned int level, vector<unsigned int> vec) { - this->vec2D_data[level]=vec; - //for (int i=0; i<=2200; i++) { - //cout <<"Test im Setter: "<< i <<": " << vec[i] << endl; - //} -} - - - - - - - -void CoordNeighborGeoV::initArrayCoord(doubflo *int_ptr, unsigned int level) { - - int zaehler=0; - unsigned int n=0; - if (int_ptr != NULL) { //nur wenn genug Speicher vorhanden ist - for (vector<vector<doubflo> >::iterator it = vec2D_data_Coord.begin() ; it != vec2D_data_Coord.end(); it++) { - if(zaehler==level) { - for(vector<doubflo>::iterator it2 = it->begin(); it2 != it->end(); it2++){ - int_ptr[n]=*it2; - n++; - } - } - zaehler++; - } - } -} diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/CoordNeighborGeoV.h b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/CoordNeighborGeoV.h deleted file mode 100644 index b1e3a16a7..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/CoordNeighborGeoV.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include <vector> -#include <fstream> - -using namespace std; - -class CoordNeighborGeoV -{ -protected: - ifstream file; - unsigned int level; - vector<unsigned int> vec_Size; // Die Groeßen der Felder - - vector<unsigned int> vec_data; //das Feld mit Werten, temporär zum Füllen von vec2D_data - vector<doubflo> vec_data_Coord; //das Feld mit Werten, temporär zum Füllen von vec2D_data - vector< vector<unsigned int> > vec2D_data; //alle Felder mit Werten gegliedert nach Level - vector< vector< doubflo> > vec2D_data_Coord; //alle Felder mit Werten gegliedert nach Level - -public: - CoordNeighborGeoV(); - CoordNeighborGeoV(string ad, bool binaer, bool coord); - ~CoordNeighborGeoV(void); - void init(bool coord); //füllt die Vektoren - void init_Binary(bool coord); - - - unsigned int getLevel();//liefert einen Wert, die größte Levelzahl - unsigned int getSize(unsigned int level); //liefert die Größe des gesuchten Levels - vector<unsigned int>getVec(unsigned int level); - void setVec(unsigned int level, vector<unsigned int> vec); - - void initArray(unsigned int *int_ptr, unsigned int level ); - void initArrayCoord(doubflo *int_ptr, unsigned int level ); -}; - diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Interface.cpp b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Interface.cpp deleted file mode 100644 index 30bab1fce..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Interface.cpp +++ /dev/null @@ -1,2879 +0,0 @@ -#include "Interface.h" -#include <algorithm> -#include <math.h> -#define TEST false - - - -Interface::Interface(bool binaer) -{ - this->binaer=binaer; - system = new string[6]; - system[0] = "inlet"; - system[1] = "outlet"; - system[2] = "front"; - system[3] = "back"; - system[4] = "top"; - system[5] = "bottom"; - - - -} - -Interface::~Interface(void) -{ -} - -bool Interface::getBinaer(){ - return binaer; -} - -void Interface::allocArrays_CoordNeighborGeo(Parameter* para) { - cout << "-----Config Arrays Coord, Neighbor, Geo------" << endl; - - CoordNeighborGeoV *coordX = new CoordNeighborGeoV(para->getcoordX(), binaer, true); - CoordNeighborGeoV *coordY = new CoordNeighborGeoV(para->getcoordY(), binaer, true); - CoordNeighborGeoV *coordZ = new CoordNeighborGeoV(para->getcoordZ(), binaer, true); - neighX = new CoordNeighborGeoV(para->getneighborX(), binaer, false); - neighY = new CoordNeighborGeoV(para->getneighborY(), binaer, false); - neighZ = new CoordNeighborGeoV(para->getneighborZ(), binaer, false); - //Particles or Wale - if (para->getCalcParticle() || para->getUseWale()) - { - neighWSB = new CoordNeighborGeoV(para->getneighborWSB(), binaer, false); - } - - CoordNeighborGeoV *geoV = new CoordNeighborGeoV(para->getgeoVec(), binaer, false); - - - int level = coordX->getLevel(); - cout << "Anzahl Level: " << level + 1 << endl; - int AnzahlKnotenGes = 0; - cout << "Anzahl Knoten: " << endl; - //------------------------//------------------------//------------------------//------------------------//------------------------//------------------------//------------------------//------------------------ - for (int i = 0; i <= level; i++) { - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - int temp = coordX->getSize(i) + 1; - AnzahlKnotenGes += temp; - cout << "Level " << i << " = " << temp << " Knoten" << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - int blocks = (temp / para->getParH(i)->numberofthreads) + 1; - - //cout << "Anzahl Blocks vorher: " << temp / para->getParH(i)->numberofthreads << endl; - //cout << "Anzahl Blocks nachher: " << blocks << endl; - - para->getParH(i)->size_Array_SP = blocks * para->getParH(i)->numberofthreads; - para->getParD(i)->size_Array_SP = para->getParH(i)->size_Array_SP; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->size_Mat_SP = temp; - para->getParD(i)->size_Mat_SP = temp; - para->getParH(i)->mem_size_doubflo_SP = sizeof(doubflo)* para->getParH(i)->size_Array_SP; - para->getParH(i)->mem_size_int_SP = sizeof(unsigned int)* para->getParH(i)->size_Array_SP; - para->getParD(i)->mem_size_doubflo_SP = sizeof(doubflo)* para->getParD(i)->size_Array_SP; - para->getParD(i)->mem_size_int_SP = sizeof(unsigned int)* para->getParD(i)->size_Array_SP; - //para->getParH(i)->mem_size_doubflo_SP = sizeof(doubflo)* para->getParH(i)->size_Mat_SP; - //para->getParH(i)->mem_size_int_SP = sizeof(unsigned int)* para->getParH(i)->size_Mat_SP; - //para->getParD(i)->mem_size_doubflo_SP = sizeof(doubflo)* para->getParD(i)->size_Mat_SP; - //para->getParD(i)->mem_size_int_SP = sizeof(unsigned int)* para->getParD(i)->size_Mat_SP; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //cout <<"Test 1 " <<endl; - //cout << "size_Mat_SP Host in Level " << i << " = " << para->getParH(i)->size_Mat_SP << endl; - //cout << "size_Mat_SP Device in Level " << i << " = " << para->getParD(i)->size_Mat_SP << endl; - //cout << "mem_size_doubflo_SP Host in Level " << i << " = " << para->getParH(i)->mem_size_doubflo_SP << endl; - //cout << "mem_size_doubflo_SP Device in Level " << i << " = " << para->getParD(i)->mem_size_doubflo_SP << endl; - //cout << "mem_size_int_SP Host in Level " << i << " = " << para->getParH(i)->mem_size_int_SP << endl; - //cout << "mem_size_int_SP Device in Level " << i << " = " << para->getParD(i)->mem_size_int_SP << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocCoord(i); - para->cudaAllocSP(i); - if (para->getCalcMedian()) - para->cudaAllocMedianSP(i); - if (para->getCalcParticle() || para->getUseWale()) - para->cudaAllocNeighborWSB(i); - if (para->getUseWale()) - para->cudaAllocTurbulentViscosity(i); - //cout <<"Test 2 " <<endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - coordX->initArrayCoord(para->getParH(i)->coordX_SP, i); - coordY->initArrayCoord(para->getParH(i)->coordY_SP, i); - coordZ->initArrayCoord(para->getParH(i)->coordZ_SP, i); - //cout <<"Test 3 " <<endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - neighX->initArray(para->getParH(i)->neighborX_SP, i); - neighY->initArray(para->getParH(i)->neighborY_SP, i); - neighZ->initArray(para->getParH(i)->neighborZ_SP, i); - //Particles or Wale - if (para->getCalcParticle() || para->getUseWale()) - { - neighWSB->initArray(para->getParH(i)->neighborWSB_SP, i); - } - //cout <<"Test 4 " <<endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - geoV->initArray(para->getParH(i)->geoSP, i); - //cout <<"Test 5 " <<endl; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////test - //cout << " Laenge des Vektors: " << coordX1->getSize(i) << endl; - //cout << " Laenge des Vektors: " << coordY1->getSize(i) << endl; - //cout << " Laenge des Vektors: " << coordZ1->getSize(i) << endl; - //cout << " Laenge des Vektors: " << neighX1->getSize(i) << endl; - //cout << " Laenge des Vektors: " << neighY1->getSize(i) << endl; - //cout << " Laenge des Vektors: " << neighZ1->getSize(i) << endl; - //cout << " Laenge des Vektors: " << geoV1->getSize(i) << endl; - //////////////////////////////////////////////////////////////////////////////// - //Test Coarse Nodes in Fine Grid - //if (i == 0) - //{ - // for (int t1 = 0; t1 < para->getParH(0)->size_Mat_SP; t1++) - // { - // if (((para->getParH(0)->coordX_SP[t1] > 15.0) && (para->getParH(0)->coordX_SP[t1] < 25.0)) && - // ((para->getParH(0)->coordY_SP[t1] > 15.0) && (para->getParH(0)->coordY_SP[t1] < 25.0)) && - // ((para->getParH(0)->coordZ_SP[t1] > 15.0) && (para->getParH(0)->coordZ_SP[t1] < 25.0))) - // { - // cout << " CoordTest " << para->getParH(0)->coordX_SP[t1] << " " << para->getParH(0)->coordY_SP[t1] << " " << para->getParH(0)->coordZ_SP[t1] << " " << t1 << endl; - // } - // //if (t1 == 780) - // //{ - // // cout << " CoordTest " << para->getParH(0)->coordX_SP[t1] << " " << para->getParH(0)->coordY_SP[t1] << " " << para->getParH(0)->coordZ_SP[t1] << " " << t1 << endl; - // //} - // //cout << " CoordTest " << para->getParH(0)->coordX_SP[t1] << " " << para->getParH(0)->coordY_SP[t1] << " " << para->getParH(0)->coordZ_SP[t1] << endl; - // } - //} - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //test2 - //cout << " erster Punkt des Vektors neighborX_SP: " << para->getParH(i)->neighborX_SP[1] << endl; - //cout << " letzter Punkt des Vektors neighborX_SP: " << para->getParH(i)->neighborX_SP[para->getParH(i)->size_Mat_SP] << endl; - //cout << " erster Punkt des Vektors neighborY_SP: " << para->getParH(i)->neighborY_SP[1] << endl; - //cout << " letzter Punkt des Vektors neighborY_SP: " << para->getParH(i)->neighborY_SP[para->getParH(i)->size_Mat_SP] << endl; - //cout << " erster Punkt des Vektors neighborZ_SP: " << para->getParH(i)->neighborZ_SP[1] << endl; - //cout << " letzter Punkt des Vektors neighborZ_SP: " << para->getParH(i)->neighborZ_SP[para->getParH(i)->size_Mat_SP] << endl; - //cout << " erster Punkt des Vektors geoSP: " << para->getParH(i)->geoSP[1] << endl; - //cout << " letzter Punkt des Vektors geoSP: " << para->getParH(i)->geoSP[para->getParH(i)->size_Mat_SP] << endl; - ////////////////////////////////////////////////////////////////////////// - for (int j = 0; j <= temp; j++) - { - para->getParH(i)->vx_SP[j] = para->getVelocity();//0.0f;//0.035f; - para->getParH(i)->vy_SP[j] = 0.0f;//para->getVelocity();//0.0f; - para->getParH(i)->vz_SP[j] = 0.0f; - para->getParH(i)->rho_SP[j] = 0.0f; - para->getParH(i)->press_SP[j] = 0.0f; - if (para->getCalcMedian()){ - para->getParH(i)->vx_SP_Med[j] = 0.0f; - para->getParH(i)->vy_SP_Med[j] = 0.0f; - para->getParH(i)->vz_SP_Med[j] = 0.0f; - para->getParH(i)->rho_SP_Med[j] = 0.0f; - para->getParH(i)->press_SP_Med[j] = 0.0f; - } - if (para->getUseWale()) { - para->getParH(i)->turbViscosity[j] = 0.0f; - } - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Acoustic Test - //doubflo factor01 = 20.0; - //doubflo factor02 = 40.0; - //doubflo factor03 = 60.0; - //doubflo factor04 = 80.0; - //doubflo factor = factor04; //01 = 20.0f; 02 = 40.0f; 03 = 60.0f; 04 = 80.0f - - //doubflo myEpsilon = 0.001; // * 0.1 - //doubflo b = 0.1 * factor; - //doubflo myAlpha = log(2.0) / (b * b); - //doubflo myRadius = 0.0; - //doubflo coordX = factor + 1.0; - //doubflo coordY = factor + 1.0; - //doubflo coordZ = factor + 1.0; - //doubflo distX = 0.0; - //doubflo distY = 0.0; - //doubflo distZ = 0.0; - //doubflo myPress = 0.0; - - //for (int j = 0; j <= temp; j++) - //{ - // distX = para->getParH(i)->coordX_SP[j] - coordX; - // distY = para->getParH(i)->coordY_SP[j] - coordY; - // distZ = para->getParH(i)->coordZ_SP[j] - coordZ; - // //myRadius = sqrt((distX * distX) + (distY * distY)); //XY - // //myRadius = sqrt((distY * distY) + (distZ * distZ)); //YZ - // myRadius = sqrt((distX * distX) + (distZ * distZ)); //XZ - - // myPress = myEpsilon * exp(-myAlpha * myRadius * myRadius); - - // para->getParH(i)->rho_SP[j] = myPress; - // para->getParH(i)->press_SP[j] = myPress; - //} - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Taylor Green Vortex uniform - doubflo PI = 3.141592653589793238462643383279f; - doubflo gridX = para->getParH(i)->gridNX - 1; - doubflo gridY = para->getParH(i)->gridNY - 1; - doubflo gridZ = para->getParH(i)->gridNZ - 1; - //like MG - //doubflo uAdvect = doubflo (1. / 250.); //32 nodes -> 250; 40 nodes -> 200; 64 nodes -> 500; 128 nodes -> 1000; 256 nodes -> 2000; 512 nodes -> 4000 - doubflo uAdvect = doubflo(0.0008); //32 nodes -> 0.032; 64 nodes -> 0.016; 128 nodes -> 0.008; 256 nodes -> 0.004; 512 nodes -> 0.002 - - for (int j = 0; j <= temp; j++) - { - para->getParH(i)->rho_SP[j] = - (doubflo)((para->getVelocity()*para->getVelocity())*3.0 / 4.0*(cos(para->getParH(i)->coordX_SP[j]*4.0*PI / - (doubflo)gridX) + cos(para->getParH(i)->coordZ_SP[j] *4.0*PI / - (doubflo)gridZ)))*(doubflo)(gridZ) / (doubflo)(gridX); - - para->getParH(i)->vy_SP[j] = (doubflo)0.0; - - //incl. additional velocity - //para->getParH(i)->vx_SP[j] = - // (doubflo)((32. * 32. ) / (1000. * 32.) * para->getVelocity() / 0.1 + para->getVelocity()*sin((para->getParH(i)->coordX_SP[j]*2.0*PI / - // (doubflo)gridX))*cos(para->getParH(i)->coordZ_SP[j]*2.0*PI / (doubflo)gridZ)); - //like MG - para->getParH(i)->vx_SP[j] = - (doubflo)(para->getVelocity()*sin((para->getParH(i)->coordX_SP[j] * 2.0*PI / (doubflo)gridX))*cos(para->getParH(i)->coordZ_SP[j] * 2.0*PI / (doubflo)gridZ)) + uAdvect * (1.0 + para->getParH(i)->rho_SP[j]); - - //no additional velocity - //para->getParH(i)->vz_SP[j] = - // (doubflo)(-para->getVelocity()*cos((para->getParH(i)->coordX_SP[j] *2.0*PI / (doubflo)gridX))*sin(para->getParH(i)->coordZ_SP[j]*2.0*PI / - // (doubflo)gridZ))*(doubflo)(gridZ) / (doubflo)(gridX); - //like MG - para->getParH(i)->vz_SP[j] = - (doubflo)(-para->getVelocity()*cos((para->getParH(i)->coordX_SP[j] * 2.0*PI / (doubflo)gridX))*sin(para->getParH(i)->coordZ_SP[j] * 2.0*PI / (doubflo)gridZ));// *(doubflo)(gridZ) / (doubflo)(gridX); - //cout << "\n Ich lebe: " << j << endl; - } - //cout << "\n GridNx: " << gridX << " GridNy: " << gridY << " GridNz: " << gridZ << endl; - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Desox fix - //int levelToChange = 0;//uniform ... otherwise 7; - //if (i==levelToChange) - //{ - // doubflo startX = 769.0;//1025.0f;//uniform ... otherwise 114.999f; //120.95664f; - // doubflo endX = 1537.0;//1793.0f;//uniform ... otherwise 120.999f; - // doubflo sizePress = endX - startX; - // doubflo tempPress = (1.0f / para->getFactorPressBC()); - // cout << " tempPress: " << tempPress << endl; - // doubflo factor = 0.0f; - // int tempIn = 0; - // for (int j = 0; j <= temp; j++) - // { - // if ( (para->getParH(i)->coordX_SP[j] > startX) && (para->getParH(i)->coordX_SP[j] < endX)) - // { - // factor = (((para->getParH(i)->coordX_SP[j] - startX) / sizePress)); - // //if (tempIn < 20) - // //{ - // //cout << " CoordX: " << para->getParH(i)->coordX_SP[j] << endl; - // //cout << " factor: " << factor << endl; - // //} - // //tempIn++; - // para->getParH(i)->rho_SP[j] = factor * tempPress; - // para->getParH(i)->press_SP[j] = factor * tempPress; - // } - // } - //} - //////////////////////////////////////////////////////////////////////////////// - //Quatsch Test - //for (int t1 = 0; t1 < 10; t1++) - //{ - // cout <<" CoordTest " << para->getParH(i)->coordX_SP[t1] << " " << para->getParH(i)->coordY_SP[t1] << " " << para->getParH(i)->coordZ_SP[t1] << endl; - //} - //////////////////////////////////////////////////////////////////////////// - rearrangeGeometry(para, i); - //////////////////////////////////////////////////////////////////////////// - para->cudaCopySP(i); - para->cudaCopyCoord(i); - if (para->getCalcMedian()) para->cudaCopyMedianSP(i); - if (para->getCalcParticle()) para->cudaCopyNeighborWSB(i); - if (para->getUseWale()) { - para->cudaCopyNeighborWSB(i); - para->cudaCopyTurbulentViscosityHD(i); - } - //cout <<"Test 6 " <<endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - - cout << "Gesamtanzahl Knoten = " << AnzahlKnotenGes << endl; - - - - ////////////////////////////////////////////////////////////////////////////// - ////Mist - //////////////////////////////////////////////////////////////////////////// - //double minX, maxX; - //double minY, maxY; - //double minZ, maxZ; - //double diffX = 0.; - //double diffY = 0.; - //double diffZ = 0.; - ////int levelX, levelY, levelZ; - - //for (int i = 0; i < para->getMinCoordX().size(); i++) - //{ - // if ((para->getMaxCoordX()[i] - para->getMinCoordX()[i]) > diffX) - // { - // diffX = para->getMaxCoordX()[i] - para->getMinCoordX()[i]; - // minX = para->getMinCoordX()[i]; - // maxX = para->getMaxCoordX()[i]; - // //levelX = i; - // } - // if ((para->getMaxCoordY()[i] - para->getMinCoordY()[i]) > diffY) - // { - // diffY = para->getMaxCoordY()[i] - para->getMinCoordY()[i]; - // minY = para->getMinCoordY()[i]; - // maxY = para->getMaxCoordY()[i]; - // //levelY = i; - // } - // if ((para->getMaxCoordZ()[i] - para->getMinCoordZ()[i]) > diffZ) - // { - // diffZ = para->getMaxCoordZ()[i] - para->getMinCoordZ()[i]; - // minZ = para->getMinCoordZ()[i]; - // maxZ = para->getMaxCoordZ()[i]; - // //levelZ = i; - // } - //} - // - //double midX = (maxX + minX) / 2.; - //double midY = (maxY + minY) / 2.; - //double midZ = (maxZ + minZ) / 2. + 10.0; - ////cout << " minX = " << minX << " minY = " << minY << " minZ = " << minZ << endl; - ////cout << " maxX = " << maxX << " maxY = " << maxY << " maxZ = " << maxZ << endl; - ////cout << " midx = " << midX << " midy = " << midY << " midz = " << midZ << endl; - //double dx = 1.0;//(1.0/pow(2.0,i)); - - ////set velocity and press - //for (int i=0; i<=level;i++) { - // int temp = coordX->getSize(i) + 1; - // //double dx = (1.0/pow(2.0,i)); - // double d = maxY - minY + dx; - // double r = d / 2.0; - // double r2 = r * r; - // double l = (maxX - minX + dx); - - // for (int j = 0; j <= temp; j++) - // { - // //////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->vz_SP[j] = sin(3.14*2.0/diffX*para->getParH(i)->coordX_SP[j])*sin(3.14*2.0/diffY*para->getParH(i)->coordY_SP[j])*sin(3.14*2.0/diffZ*para->getParH(i)->coordZ_SP[j])*(0.000005f) / (3.0 * 4.0 * para->getViscosity() * l) * - // (r2 - ( ((midY - para->getParH(i)->coordY_SP[j]) * (midY - para->getParH(i)->coordY_SP[j])) + - // ((midZ - para->getParH(i)->coordZ_SP[j]) * (midZ - para->getParH(i)->coordZ_SP[j])) )); - // //////////////////////////////////////////////////////////////////////////// - // //para->getParH(i)->rho_SP[j] = (1.0 - ((para->getParH(i)->coordX_SP[j] - minX) / l * 2.0)) ; - // ////////////////////////////////////////////////////////////////////////////// - // //para->getParH(i)->press_SP[j] = (1.0 - ((para->getParH(i)->coordX_SP[j] - minX) / l * 2.0)) ; - // //////////////////////////////////////////////////////////////////////////// - // } - // //////////////////////////////////////////////////////////////////////////// - // para->cudaCopySP(i); - // //////////////////////////////////////////////////////////////////////////// - //} - //////////////////////////////////////////////////////////////////////////// - - - ////////////////////////////////////////////////////////////////////////////// - ////Poiseuille Flow - //////////////////////////////////////////////////////////////////////////// - //double minX, maxX; - //double minY, maxY; - //double minZ, maxZ; - //double diffX = 0.; - //double diffY = 0.; - //double diffZ = 0.; - ////int levelX, levelY, levelZ; - - //for (int i = 0; i < para->getMinCoordX().size(); i++) - //{ - // if ((para->getMaxCoordX()[i] - para->getMinCoordX()[i]) > diffX) - // { - // diffX = para->getMaxCoordX()[i] - para->getMinCoordX()[i]; - // minX = para->getMinCoordX()[i]; - // maxX = para->getMaxCoordX()[i]; - // //levelX = i; - // } - // if ((para->getMaxCoordY()[i] - para->getMinCoordY()[i]) > diffY) - // { - // diffY = para->getMaxCoordY()[i] - para->getMinCoordY()[i]; - // minY = para->getMinCoordY()[i]; - // maxY = para->getMaxCoordY()[i]; - // //levelY = i; - // } - // if ((para->getMaxCoordZ()[i] - para->getMinCoordZ()[i]) > diffZ) - // { - // diffZ = para->getMaxCoordZ()[i] - para->getMinCoordZ()[i]; - // minZ = para->getMinCoordZ()[i]; - // maxZ = para->getMaxCoordZ()[i]; - // //levelZ = i; - // } - //} - // - //double midX = (maxX + minX) / 2.; - //double midY = (maxY + minY) / 2.; - //double midZ = (maxZ + minZ) / 2.; - ////cout << " minX = " << minX << " minY = " << minY << " minZ = " << minZ << endl; - ////cout << " maxX = " << maxX << " maxY = " << maxY << " maxZ = " << maxZ << endl; - ////cout << " midx = " << midX << " midy = " << midY << " midz = " << midZ << endl; - //double dx = 1.0;//(1.0/pow(2.0,i)); - - ////set velocity and press - //for (int i=0; i<=level;i++) { - // int temp = coordX->getSize(i) + 1; - // //double dx = (1.0/pow(2.0,i)); - // double d = maxY - minY + dx; - // double r = d / 2.0; - // double r2 = r * r; - // double l = (maxX - minX + dx); - - // for (int j = 0; j <= temp; j++) - // { - // //////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->vx_SP[j] = (2.0 / para->getFactorPressBC()) / (3.0 * 4.0 * para->getViscosity() * l) * - // (r2 - ( ((midY - para->getParH(i)->coordY_SP[j]) * (midY - para->getParH(i)->coordY_SP[j])) + - // ((midZ - para->getParH(i)->coordZ_SP[j]) * (midZ - para->getParH(i)->coordZ_SP[j])) )); - // //////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->rho_SP[j] = (1.0 - ((para->getParH(i)->coordX_SP[j] - minX) / l * 2.0)) / para->getFactorPressBC(); - // //////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->press_SP[j] = (1.0 - ((para->getParH(i)->coordX_SP[j] - minX) / l * 2.0)) / para->getFactorPressBC(); - // //////////////////////////////////////////////////////////////////////////// - // } - // //////////////////////////////////////////////////////////////////////////// - // para->cudaCopySP(i); - // //////////////////////////////////////////////////////////////////////////// - //} - //////////////////////////////////////////////////////////////////////////// - - - - //////////////////////////////////////////////////////////////////////////// - //Coordinates - //cout <<" X-Drehkoordinate: " << para->getParH(2)->coordX_SP[2822040] << endl; - //cout <<" Y-Drehkoordinate: " << para->getParH(2)->coordY_SP[2822040] << endl; - //////////////////////////////////////////////////////////////////////////// - ////MS added - //ifstream file_localToGlobal; - //file_localToGlobal.open("D:/temp/Soeren/mesh_to_read/sphere_refinement2/coordLocalToGlobal.dat", ios::in); - //if (!file_localToGlobal) { - // cerr << "Fehler beim Oeffnen von file_localToGlobal" <<endl; - // exit(1); - //} - ////Startpositionen einlesen - //string buffer; - //for (int i=0; i<=level;i++) { - // file_localToGlobal > > buffer; - // file_localToGlobal > > para->getParH(i)->distX; - // file_localToGlobal > > para->getParH(i)->distY; - // file_localToGlobal > > para->getParH(i)->distZ; - //} - //////////////////////////////////////////////////////////////////////////// - - //Test Soeren------------------------------------------------------------------------------------------------------------------------ - //cout << "Test Koordinanten: " << endl; - //cout << "TEST coordX level: "<< i <<" , erster: " << ara_coordX[i][1] <<", letzter: "<< ara_coordX[i][temp-1] << endl; - //cout << "TEST coordY level: "<< i <<" , erster: " << ara_coordY[i][1] <<", letzter: "<< ara_coordY[i][temp-1] << endl; - //cout << "TEST coordZ level: "<< i <<" , erster: " << ara_coordZ[i][1] <<", letzter: "<< ara_coordZ[i][temp-1] << endl; - //cout << "Test Nachbarn: " << endl; - //cout << "TEST neighX level: "<< i <<" , erster: " << ara_nX[i][1] <<", letzter: "<< ara_nX[i][temp-1] << endl; - //cout << "TEST neighY level: "<< i <<" , erster: " << ara_nY[i][1] <<", letzter: "<< ara_nY[i][temp-1] << endl; - //cout << "TEST neighZ level: "<< i <<" , erster: " << ara_nZ[i][1] <<", letzter: "<< ara_nZ[i][temp-1] << endl; - //cout << "Test geo: " << endl; - //cout << "TEST geo level: "<< i <<" , erster: " << ara_geoV[i][1] <<", letzter: "<< ara_geoV[i][temp-1] << endl; - //ENDE Test Soeren------------------------------------------------------------------------------------------------------------------------ - - //} - - //------------------------//------------------------//------------------------//------------------------//------------------------//------------------------//------------------------//------------------------ - - - //Test Soeren------------------------------------------------------------------------------------------------------------------------ - //if(TEST==true) { - // cout << "Test Koordinanten: " << endl; - // cout << "TEST coordX level: "<< i <<" , erster: " << ara_coordX[i][1] <<", letzter: "<< ara_coordX[i][temp-1] << endl; - // cout << "TEST coordY level: "<< i <<" , erster: " << ara_coordY[i][1] <<", letzter: "<< ara_coordY[i][temp-1] << endl; - // cout << "TEST coordZ level: "<< i <<" , erster: " << ara_coordZ[i][1] <<", letzter: "<< ara_coordZ[i][temp-1] << endl; - - // cout << "Test geo: " << endl; - // cout << "TEST geo level: "<< i <<" , erster: " << ara_geoV[i][1] <<", letzter: "<< ara_geoV[i][temp-1] << endl; - ////ENDE Test Soeren------------------------------------------------------------------------------------------------------------------------ - //} - - - - delete coordX; - delete coordY; - delete coordZ; - - delete geoV; - - cout << "-----Ende Coord, Neighbor, Geo------" <<endl; - -} - -void Interface::allocArrays_OffsetScale(Parameter* para) { - - cout << "-----Config Arrays OffsetScale------" <<endl; - OffsetScale *obj_offCF = new OffsetScale(para->getscaleOffsetCF(), true); - OffsetScale *obj_offFC = new OffsetScale(para->getscaleOffsetFC(), true); - OffsetScale *obj_scaleCFC = new OffsetScale(para->getscaleCFC(), false); - OffsetScale *obj_scaleCFF = new OffsetScale(para->getscaleCFF(), false); - OffsetScale *obj_scaleFCC = new OffsetScale(para->getscaleFCC(), false); - OffsetScale *obj_scaleFCF = new OffsetScale(para->getscaleFCF(), false); - - int level = obj_offCF->getLevel(); - - int AnzahlKnotenGesCF = 0; - int AnzahlKnotenGesFC = 0; - - for (int i=0; i<level; i++) { - unsigned int tempCF = obj_offCF->getSize(i); - cout << "Groesse der Daten CF vom Level "<< i <<" : " << tempCF <<endl; - unsigned int tempFC = obj_offFC->getSize(i); - cout << "Groesse der Daten FC vom Level "<< i <<" : " << tempFC <<endl; - - AnzahlKnotenGesCF += tempCF; - AnzahlKnotenGesFC += tempFC; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //size + memsize CF - para->getParH(i)->K_CF = tempCF; - para->getParD(i)->K_CF = para->getParH(i)->K_CF; - para->getParH(i)->intCF.kCF = para->getParH(i)->K_CF; - para->getParD(i)->intCF.kCF = para->getParH(i)->K_CF; - para->getParH(i)->mem_size_kCF = sizeof(unsigned int)* para->getParH(i)->K_CF; - para->getParD(i)->mem_size_kCF = sizeof(unsigned int)* para->getParD(i)->K_CF; - para->getParH(i)->mem_size_kCF_off = sizeof(doubflo)* para->getParH(i)->K_CF; - para->getParD(i)->mem_size_kCF_off = sizeof(doubflo)* para->getParD(i)->K_CF; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //size + memsize FC - para->getParH(i)->K_FC = tempFC; - para->getParD(i)->K_FC = para->getParH(i)->K_FC; - para->getParH(i)->intFC.kFC = para->getParH(i)->K_FC; - para->getParD(i)->intFC.kFC = para->getParH(i)->K_FC; - para->getParH(i)->mem_size_kFC = sizeof(unsigned int)* para->getParH(i)->K_FC; - para->getParD(i)->mem_size_kFC = sizeof(unsigned int)* para->getParD(i)->K_FC; - para->getParH(i)->mem_size_kFC_off = sizeof(doubflo)* para->getParH(i)->K_FC; - para->getParD(i)->mem_size_kFC_off = sizeof(doubflo)* para->getParD(i)->K_FC; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //alloc - para->cudaAllocInterfaceCF(i); - para->cudaAllocInterfaceFC(i); - para->cudaAllocInterfaceOffCF(i); - para->cudaAllocInterfaceOffFC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //init - obj_offCF->initArrayOffset(para->getParH(i)->offCF.xOffCF, para->getParH(i)->offCF.yOffCF, para->getParH(i)->offCF.zOffCF, i); - obj_offFC->initArrayOffset(para->getParH(i)->offFC.xOffFC, para->getParH(i)->offFC.yOffFC, para->getParH(i)->offFC.zOffFC, i); - obj_scaleCFC->initArray(para->getParH(i)->intCF.ICellCFC, i); - obj_scaleCFF->initArray(para->getParH(i)->intCF.ICellCFF, i); - obj_scaleFCC->initArray(para->getParH(i)->intFC.ICellFCC, i); - obj_scaleFCF->initArray(para->getParH(i)->intFC.ICellFCF, i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //copy - para->cudaCopyInterfaceCF(i); - para->cudaCopyInterfaceFC(i); - para->cudaCopyInterfaceOffCF(i); - para->cudaCopyInterfaceOffFC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - cout << "Gesamtanzahl Knoten CF = " << AnzahlKnotenGesCF << endl; - cout << "Gesamtanzahl Knoten FC = " << AnzahlKnotenGesFC << endl; - - delete obj_offCF; - delete obj_offFC; - delete obj_scaleCFC; - delete obj_scaleCFF; - delete obj_scaleFCC; - delete obj_scaleFCF; - cout << "-----Ende OffsetScale------" <<endl; -} - -void Interface::allocArrays_BoundaryValues(Parameter* para) { - - cout << "-----Config Arrays BoundaryValues------" <<endl; - int t = 6; - - - BoundaryValues **BC_Values = new BoundaryValues*[t]; - this->sortSystem(BC_Values , para, t); - - way = new string[t]; - - for (int i = 0; i < t; i++){ - this->way[i] = BC_Values[i]->getWay(); - cout << this->system[i] <<" Boundary: " << way[i] << endl; - } - - BoundaryValues *obj_geomV=new BoundaryValues(para->getgeomBoundaryBcValues(), para, "geo"); - - int level = BC_Values[0]->getLevel(); - - - vector<vector<vector<doubflo> > > pressureV; - pressureV.resize(level+1); - vector<vector<vector<doubflo> > > velocityV; - velocityV.resize(level+1); - //vector<vector<vector<unsigned int> > > periodV; - //periodV.resize(level + 1); - //vector<vector<unsigned int> > periodIndex; - //periodIndex.resize(level + 1); - vector<vector<vector<doubflo> > > outflowV; - outflowV.resize(level+1); - - for(int i=0; i<=level; i++) { - pressureV[i].resize(2); - velocityV[i].resize(3); - //periodV[i].resize(1); - outflowV[i].resize(2); - } - - ////////////////////////////////////////////////////////////////////////// - //added by Martin S. - ////////////////////////////////////////////////////////////////////////// - ////1D domain decomposition - //vector< BoundaryValues* > procNeighborsSend; - //vector< BoundaryValues* > procNeighborsRecv; - //vector< int > neighborRank; - - //if (para->getNumprocs()>1) - //{ - // for (int i = 0; i < para->getNumprocs(); i++) - // { - // BoundaryValues *pnSend = new BoundaryValues(i, para, "send"); - // BoundaryValues *pnRecv = new BoundaryValues(i, para, "recv"); - // if (para->getIsNeighbor()) - // { - // procNeighborsSend.push_back(pnSend); - // procNeighborsRecv.push_back(pnRecv); - // neighborRank.push_back(i); - // } - // } - //} - //////////////////////////////////////////////////////////////////////// - //3D domain decomposition - vector< BoundaryValues* > procNeighborsSendX, procNeighborsSendY, procNeighborsSendZ; - vector< BoundaryValues* > procNeighborsRecvX, procNeighborsRecvY, procNeighborsRecvZ; - vector< int > neighborRankX, neighborRankY, neighborRankZ; - - procNeighborsSendX.resize(0); - procNeighborsSendY.resize(0); - procNeighborsSendZ.resize(0); - procNeighborsRecvX.resize(0); - procNeighborsRecvY.resize(0); - procNeighborsRecvZ.resize(0); - neighborRankX.resize(0); - neighborRankY.resize(0); - neighborRankZ.resize(0); - - if (para->getNumprocs()>1) - { - for (int i = 0; i < para->getNumprocs(); i++) - { - BoundaryValues *pnXsend = new BoundaryValues(i, para, "send", "X"); - BoundaryValues *pnYsend = new BoundaryValues(i, para, "send", "Y"); - BoundaryValues *pnZsend = new BoundaryValues(i, para, "send", "Z"); - BoundaryValues *pnXrecv = new BoundaryValues(i, para, "recv", "X"); - BoundaryValues *pnYrecv = new BoundaryValues(i, para, "recv", "Y"); - BoundaryValues *pnZrecv = new BoundaryValues(i, para, "recv", "Z"); - if (para->getIsNeighborX()) - { - procNeighborsSendX.push_back(pnXsend); - procNeighborsRecvX.push_back(pnXrecv); - neighborRankX.push_back(i); - cout << "MyID: " << para->getMyID() << ", neighborRankX: " << i << endl; - } - if (para->getIsNeighborY()) - { - procNeighborsSendY.push_back(pnYsend); - procNeighborsRecvY.push_back(pnYrecv); - neighborRankY.push_back(i); - cout << "MyID: " << para->getMyID() << ", neighborRankY: " << i << endl; - } - if (para->getIsNeighborZ()) - { - procNeighborsSendZ.push_back(pnZsend); - procNeighborsRecvZ.push_back(pnZrecv); - neighborRankZ.push_back(i); - cout << "MyID: " << para->getMyID() << ", neighborRankZ: " << i << endl; - } - } - cout << "MyID: " << para->getMyID() << ", size of neighborRankX: " << neighborRankX.size() << ", size of neighborRankY: " << neighborRankY.size() << ", size of neighborRankZ: " << neighborRankZ.size() << endl; - } - //////////////////////////////////////////////////////////////////////// - //3D domain decomposition convection diffusion - vector< BoundaryValues* > procNeighborsSendADX, procNeighborsSendADY, procNeighborsSendADZ; - vector< BoundaryValues* > procNeighborsRecvADX, procNeighborsRecvADY, procNeighborsRecvADZ; - vector< int > neighborRankADX, neighborRankADY, neighborRankADZ; - - procNeighborsSendADX.resize(0); - procNeighborsSendADY.resize(0); - procNeighborsSendADZ.resize(0); - procNeighborsRecvADX.resize(0); - procNeighborsRecvADY.resize(0); - procNeighborsRecvADZ.resize(0); - neighborRankADX.resize(0); - neighborRankADY.resize(0); - neighborRankADZ.resize(0); - - if (para->getDiffOn()==true && para->getNumprocs()>1) - { - for (int i = 0; i < para->getNumprocs(); i++) - { - BoundaryValues *pnADXsend = new BoundaryValues(i, para, "send", "X"); - BoundaryValues *pnADYsend = new BoundaryValues(i, para, "send", "Y"); - BoundaryValues *pnADZsend = new BoundaryValues(i, para, "send", "Z"); - BoundaryValues *pnADXrecv = new BoundaryValues(i, para, "recv", "X"); - BoundaryValues *pnADYrecv = new BoundaryValues(i, para, "recv", "Y"); - BoundaryValues *pnADZrecv = new BoundaryValues(i, para, "recv", "Z"); - if (para->getIsNeighborX()) - { - procNeighborsSendADX.push_back(pnADXsend); - procNeighborsRecvADX.push_back(pnADXrecv); - neighborRankADX.push_back(i); - } - if (para->getIsNeighborY()) - { - procNeighborsSendADY.push_back(pnADYsend); - procNeighborsRecvADY.push_back(pnADYrecv); - neighborRankADY.push_back(i); - } - if (para->getIsNeighborZ()) - { - procNeighborsSendADZ.push_back(pnADZsend); - procNeighborsRecvADZ.push_back(pnADZrecv); - neighborRankADZ.push_back(i); - } - } - } - - ////////////////////////////////////////////////////////////////////////// - //cout << "Laenge 1 periodV: " << periodV.size() << endl; - //cout << "Laenge 2 periodV: " << periodV[0].size() << endl; - //cout << "Laenge 3 periodV: " << periodV[0][0].size() << endl; - - - ////----------------------------------------Vektoren Initialisierung-------------- - string way_temp; - for (int i = 0; i < t; i++){ - if (this->way[i] == "velocity") { velocityV = BC_Values[i]->setgetBoundarys(velocityV); } - else if (this->way[i] == "pressure") { pressureV = BC_Values[i]->setgetBoundarys(pressureV); } - else if (this->way[i] == "outflow") { outflowV = BC_Values[i]->setgetBoundarys(outflowV); } - //else if (this->way[i] == "periodic_x" || this->way[i] == "periodic_y" || this->way[i] == "periodic_z") { periodV = BC_Values[i]->setgetBoundarys(periodV); way_temp = BC_Values[i]->getWay(); periodIndex = BC_Values[i]->setgetIndex(periodIndex); } - - //cout << "Laenge periodIndex: " << periodIndex[i].size() << endl; - //cout << "Laenge 1 periodV: " << periodV.size() << endl; - //cout << "Laenge 2 periodV: " << periodV[i].size() << endl; - //cout << "Laenge 3 periodV: " << periodV[i][0].size() << endl; - - //if (way_temp != "") - //{ - // this->initPeriodicNeigh(periodV, periodIndex, way_temp); - - // for (int i = 0; i<=level; i++) - // { - // //////////////////////////////////////////////////////////////////////// - // neighX->initArray(para->getParH(i)->neighborX_SP,i); - // cout << " Test 3 " << endl; - // neighY->initArray(para->getParH(i)->neighborY_SP,i); - // cout << " Test 3 " << endl; - // neighZ->initArray(para->getParH(i)->neighborZ_SP,i); - // cout << " Test 3 " << endl; - // //////////////////////////////////////////////////////////////////////// - // para->cudaCopySP(i); - // //////////////////////////////////////////////////////////////////////// - // } - - // cout << " Test 3 " << endl; - - // //periodV wird für jede Seite resetet - // for (int j = 0; j <= level; j++){ - // periodV[j].clear(); - // } - // periodV.clear(); - // periodIndex.clear(); - - // cout << " Test 2 " << endl; - // periodV.resize(level + 1); - // periodIndex.resize(level + 1); - // for (int i = 0; i <= level; i++) { - // periodV[i].resize(1); - // } - // way_temp = ""; - - //} - } - //cout << " Test 4 " << endl; - - ////------------------------//------------------------//------------------------//------------------------//------------------------//------------------------//------------------------//------------------------ - // - ////------------------------//------------------------//------------------------//------------------------//------------------------//------------------------//------------------------//------------------------ - - - - ////Soeren TEST--------------------------------------------------------------------------------------------------------------------------------------------------- - //if (TEST == true) { - // for (int i = 0; i <= level; i++) { - // int temp = (int)velocityV[i][0].size(); - // cout << "Groesse Velocity Values lvl " << i << " : " << temp << endl; - // } - // for (int i = 0; i <= level; i++) { - // int temp = (int)pressureV[i][0].size(); - // cout << "Groesse Pressure Values lvl " << i << " : " << temp << endl; - // } - - // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // int ausgabe = 5; - // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // for (int j = 0; j <= level; j++) { - // if (pressureV[j][0].size() > 0){ - // for (int i = 0; i < ausgabe; i++) { - // cout << "Pressure Values level " << j << ", eintrag " << i << " : " << pressureV[j][0][i] << " | " << pressureV[j][1][i] << endl; - // } - // for (unsigned int i = pressureV[j][0].size() - ausgabe; i < pressureV[j][0].size(); i++) { - // cout << "Pressure Values level " << j << ", eintrag " << i << " : " << pressureV[j][0][i] << " | " << pressureV[j][1][i] << endl; - // } - // } - // } - // for (int j = 0; j <= level; j++) { - // if (velocityV[j][0].size() >0){ - // for (int i = 0; i < ausgabe; i++) { - // cout << "Velocity Values level " << j << ", eintrag " << i << " : " << velocityV[j][0][i] << " | " << velocityV[j][1][i] << " | " << velocityV[j][2][i] << endl; - // } - // for (unsigned int i = velocityV[j][0].size() - ausgabe; i < velocityV[j][0].size(); i++) { - // cout << "velocity Values level " << j << ", eintrag " << i << " : " << velocityV[j][0][i] << " | " << velocityV[j][1][i] << " | " << velocityV[j][2][i] << endl; - // } - // } - // } - // - - - // //TEST NACHBARN - - // //for (int i = 300; i <= 500; i++) { - // // cout << "nachbarX index " << i << " : " << neighX->getVec(0)[i] << endl; - // //} - - // //for (int i = 300; i <= 800; i++) { - // // cout << "nachbarY index " << i << " : " << neighY->getVec(0)[i] << endl; - // //} - - //} - - - //ENDE TEST Soeren--------------------------------------------------------------------------------------------------------------------------------------------------- - - - - - //---------------------------------------------------------------------//AB HIER CODE FUER MARTIN////-------------------------------------------------------------------// - for (int i = 0; i <= level; i++) { - int temp1 = (int)pressureV[i][0].size(); - if (temp1 > 1) - { - cout << "Groesse pressure level " << i << " : " << temp1 << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->QPress.kQ = temp1; - para->getParD(i)->QPress.kQ = temp1; - para->getParH(i)->kPressQread = temp1 * para->getD3Qxx(); - para->getParD(i)->kPressQread = temp1 * para->getD3Qxx(); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocPress(i); - /////////////////////////////// - ////only for round of error test - //para->cudaAllocTestRE(i, temp1); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - int d = 0; - int j = 0; - int n = 0; - - for (vector<vector<vector<doubflo> > >::iterator it = pressureV.begin(); it != pressureV.end(); it++) { - if (i == d) { - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - if (j == 0) para->getParH(i)->QPress.RhoBC[n] = *it3; - if (j == 1) para->getParH(i)->QPress.kN[n] = (int)*it3; - n++; - } - j++; // zaehlt die Spalte mit - n = 0; - } - } - d++; // zaehlt das Level mit - j = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - for (int m = 0; m < temp1; m++) - { - para->getParH(i)->QPress.RhoBC[m] = (para->getParH(i)->QPress.RhoBC[m] / para->getFactorPressBC()); - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyPress(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////only for round of error test - //para->cudaCopyTestREtoDevice(i,temp1); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //// advection - diffusion stuff - ////cout << "vor advec diff" << endl; - //if (para->getDiffOn()==true){ - // ////////////////////////////////////////////////////////////////////////// - // //cout << "vor setzen von kTemp" << endl; - // para->getParH(i)->TempPress.kTemp = temp1; - // //cout << "Groesse kTemp = " << para->getParH(i)->TempPress.kTemp << endl; - // ////////////////////////////////////////////////////////////////////////// - // para->cudaAllocTempPressBC(i); - // //cout << "nach alloc" << endl; - // ////////////////////////////////////////////////////////////////////////// - // for (int m = 0; m < temp1; m++) - // { - // para->getParH(i)->TempPress.temp[m] = para->getTemperatureInit(); - // para->getParH(i)->TempPress.velo[m] = (doubflo)0.0; - // para->getParH(i)->TempPress.k[m] = para->getParH(i)->QPress.k[m]; - // } - // ////////////////////////////////////////////////////////////////////////// - // //cout << "vor copy" << endl; - // para->cudaCopyTempPressBCHD(i); - // //cout << "nach copy" << endl; - // ////////////////////////////////////////////////////////////////////////// - //} - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - }//ende if - }//ende oberste for schleife - - - - - //--------------------------------------------------------------------------// - for (int i = 0; i <= level; i++) { - int temp2 = (int)velocityV[i][0].size(); - if (temp2 > 1) - { - cout << "Groesse velocity level " << i << " : " << temp2 << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - int blocks = (temp2 / para->getParH(i)->numberofthreads) + 1; - para->getParH(i)->Qinflow.kArray = blocks * para->getParH(i)->numberofthreads; - para->getParD(i)->Qinflow.kArray = para->getParH(i)->Qinflow.kArray; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->Qinflow.kQ = temp2; - para->getParD(i)->Qinflow.kQ = temp2; - para->getParH(i)->kInflowQ = temp2; - para->getParD(i)->kInflowQ = temp2; - para->getParH(i)->kInflowQread = temp2 * para->getD3Qxx(); - para->getParD(i)->kInflowQread = temp2 * para->getD3Qxx(); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocVeloBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - int d = 0; - int j = 0; - int n = 0; - for (vector<vector<vector<doubflo> > >::iterator it = velocityV.begin(); it != velocityV.end(); it++) { - if (i == d) { - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - if (j == 0) para->getParH(i)->Qinflow.Vx[n] = *it3; - if (j == 1) para->getParH(i)->Qinflow.Vy[n] = *it3; - if (j == 2) para->getParH(i)->Qinflow.Vz[n] = *it3; - n++; - } - j++; // zaehlt die Spalte mit - //cout << "n = " << n << endl; - n = 0; - } - } - d++; // zaehlt das Level mit - j = 0; - } - //cout << "temp2 = " << temp2 << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - for (int m = 0; m < temp2; m++) - { - //para->getParH(i)->Qinflow.Vx[m] = para->getParH(i)->Qinflow.Vx[m] / para->getVelocityRatio(); - //para->getParH(i)->Qinflow.Vy[m] = para->getParH(i)->Qinflow.Vy[m] / para->getVelocityRatio(); - //para->getParH(i)->Qinflow.Vz[m] = para->getParH(i)->Qinflow.Vz[m] / para->getVelocityRatio(); - para->getParH(i)->Qinflow.Vx[m] = para->getVelocity();//0.035; - para->getParH(i)->Qinflow.Vy[m] = 0.0;//para->getVelocity();//0.0; - para->getParH(i)->Qinflow.Vz[m] = 0.0; - //if (para->getParH(i)->Qinflow.Vz[m] > 0) - //{ - // cout << "velo Z = " << para->getParH(i)->Qinflow.Vz[m] << endl; - //} - } - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyVeloBC(i); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //// advection - diffusion stuff - //if (para->getDiffOn()==true){ - // ////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->TempVel.kTemp = temp2; - // //cout << "Groesse kTemp = " << para->getParH(i)->TempPress.kTemp << endl; - // cout << "getTemperatureInit = " << para->getTemperatureInit() << endl; - // cout << "getTemperatureBC = " << para->getTemperatureBC() << endl; - // ////////////////////////////////////////////////////////////////////////// - // para->cudaAllocTempVeloBC(i); - // //cout << "nach alloc " << endl; - // ////////////////////////////////////////////////////////////////////////// - // for (int m = 0; m < temp2; m++) - // { - // para->getParH(i)->TempVel.temp[m] = para->getTemperatureInit(); - // para->getParH(i)->TempVel.tempPulse[m] = para->getTemperatureBC(); - // para->getParH(i)->TempVel.velo[m] = para->getVelocity(); - // para->getParH(i)->TempVel.k[m] = para->getParH(i)->Qinflow.k[m]; - // } - // ////////////////////////////////////////////////////////////////////////// - // //cout << "vor copy " << endl; - // para->cudaCopyTempVeloBCHD(i); - // //cout << "nach copy " << endl; - // ////////////////////////////////////////////////////////////////////////// - //} - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - }//ende if - }//ende oberste for schleife - - - //cout << "Test 1 " << endl; - - //--------------------------------------------------------------------------// - for (int i = 0; i <= level; i++) { - int temp = (int)outflowV[i][0].size(); - if (temp > 1) - { - cout << "Groesse outflow level " << i << " : " << temp << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->Qoutflow.kQ = temp; - para->getParD(i)->Qoutflow.kQ = temp; - para->getParH(i)->kOutflowQread = temp * para->getD3Qxx(); - para->getParD(i)->kOutflowQread = temp * para->getD3Qxx(); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocOutflowBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - int d = 0; - int j = 0; - int n = 0; - - for (vector<vector<vector<doubflo> > >::iterator it = outflowV.begin(); it != outflowV.end(); it++) { - if (i == d) { - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - if (j == 0) para->getParH(i)->Qoutflow.RhoBC[n] = *it3; - if (j == 1) para->getParH(i)->Qoutflow.kN[n] = (int)*it3; - n++; - } - j++; // zaehlt die Spalte mit - n = 0; - } - } - d++; // zaehlt das Level mit - j = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - for (int m = 0; m < temp; m++) - { - para->getParH(i)->Qoutflow.RhoBC[m] = (para->getParH(i)->Qoutflow.RhoBC[m] / para->getFactorPressBC()) * (doubflo)0.0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyOutflowBC(i); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - }//ende if - }//ende oberste for schleife - - - - - //--------------------------------------------------------------------------// - if (para->getIsGeometryValues()){ - for (int i = 0; i <= level; i++) { - int temp4 = obj_geomV->getSize(i); - if (temp4 > 0) - { - cout << "Groesse der Daten obj_geomV, Level " << i << " : " << temp4 << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->QGeom.kQ = temp4; - para->getParD(i)->QGeom.kQ = temp4; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocGeomValuesBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Indexarray - obj_geomV->initArray(para->getParH(i)->QGeom.Vx, i, 0); - obj_geomV->initArray(para->getParH(i)->QGeom.Vy, i, 1); - obj_geomV->initArray(para->getParH(i)->QGeom.Vz, i, 2); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - for (int m = 0; m < temp4; m++) - { - para->getParH(i)->QGeom.Vx[m] = para->getParH(i)->QGeom.Vx[m] / para->getVelocityRatio(); - para->getParH(i)->QGeom.Vy[m] = para->getParH(i)->QGeom.Vy[m] / para->getVelocityRatio(); - para->getParH(i)->QGeom.Vz[m] = para->getParH(i)->QGeom.Vz[m] / para->getVelocityRatio(); - //para->getParH(i)->QGeom.Vx[m] = para->getParH(i)->QGeom.Vx[m] / 100.0f; - //para->getParH(i)->QGeom.Vy[m] = para->getParH(i)->QGeom.Vy[m] / 100.0f; - //para->getParH(i)->QGeom.Vz[m] = para->getParH(i)->QGeom.Vz[m] / 100.0f; - //para->getParH(i)->QGeom.Vx[m] = 0.0f; - //para->getParH(i)->QGeom.Vy[m] = 0.0f; - //para->getParH(i)->QGeom.Vz[m] = 0.0f; - } - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Täst - //for (int m = 0; m < temp4; m++) - //{ - // para->getParH(i)->QGeom.Vx[m] = para->getVelocity();//0.035f; - // para->getParH(i)->QGeom.Vy[m] = 0.0f;//para->getVelocity();//0.0f; - // para->getParH(i)->QGeom.Vz[m] = 0.0f; - //} - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyGeomValuesBC(i); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //// advection - diffusion stuff - //if (para->getDiffOn()==true){ - // ////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->Temp.kTemp = temp4; - // cout << "Groesse kTemp = " << para->getParH(i)->Temp.kTemp << endl; - // ////////////////////////////////////////////////////////////////////////// - // para->cudaAllocTempNoSlipBC(i); - // ////////////////////////////////////////////////////////////////////////// - // for (int m = 0; m < temp4; m++) - // { - // para->getParH(i)->Temp.temp[m] = para->getTemperatureInit(); - // para->getParH(i)->Temp.k[m] = para->getParH(i)->QGeom.k[m]; - // } - // ////////////////////////////////////////////////////////////////////////// - // para->cudaCopyTempNoSlipBCHD(i); - // ////////////////////////////////////////////////////////////////////////// - //} - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - } - }//ende geo - - //cout << "Test 2 " << endl; - - ////--------------------------------------------------------------------------// - //if (para->getIsProp()){ - // BoundaryValues *obj_propV=new BoundaryValues(para->getpropellerValues(), para, "prop"); - // for (int i = 0; i <= level; i++) { - // int temp4 = obj_propV->getSize(i); - // if (temp4 > 0) - // { - // cout << "Groesse der Daten PropellerValues, Level " << i << " : " << temp4 << endl; - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->QPropeller.kQ = temp4; - // para->getParD(i)->QPropeller.kQ = temp4; - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // para->cudaAllocVeloPropeller(i); - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // //Indexarray - // obj_propV->initIndex(para->getParH(i)->QPropeller.k, i); - // obj_propV->initArray(para->getParH(i)->QPropeller.Vx, i, 0); - // obj_propV->initArray(para->getParH(i)->QPropeller.Vy, i, 1); - // obj_propV->initArray(para->getParH(i)->QPropeller.Vz, i, 2); - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // for (int m = 0; m < temp4; m++) - // { - // para->getParH(i)->QPropeller.Vx[m] = para->getParH(i)->QPropeller.Vx[m] / para->getVelocityRatio(); - // para->getParH(i)->QPropeller.Vy[m] = para->getParH(i)->QPropeller.Vy[m] / para->getVelocityRatio(); - // para->getParH(i)->QPropeller.Vz[m] = para->getParH(i)->QPropeller.Vz[m] / para->getVelocityRatio(); - // } - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // para->cudaCopyVeloPropeller(i); - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // } - // } - //}//ende prop - - //cout << "Test 3 " << endl; - - - //--------------------------------------------------------------------------// - //BoundaryValues *obj_cpTop=new BoundaryValues(para->getcpTop(), para, "cp"); - //BoundaryValues *obj_cpBottom=new BoundaryValues(para->getcpBottom(), para, "cp"); - //BoundaryValues *obj_cpBottom2=new BoundaryValues(para->getcpBottom2(), para, "cp"); - //if (para->getIsCp()){ - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // //Top - // for (int i = 0; i <= level; i++) { - // int temp = obj_cpTop->getSize(i); - // if (temp > 0) - // { - // cout << "Groesse der Daten CpTop, Level " << i << " : " << temp << endl; - // //////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->numberOfPointsCpTop = temp; - // para->getParD(i)->numberOfPointsCpTop = temp; - // //////////////////////////////////////////////////////////////////////////// - // para->cudaAllocCpTop(i); - // //////////////////////////////////////////////////////////////////////////// - // //Indexarray - // obj_cpTop->initIndex(para->getParH(i)->cpTopIndex, i); - // //////////////////////////////////////////////////////////////////////////// - // for (int m = 0; m < temp; m++) - // { - // para->getParH(i)->cpPressTop[m] = 0.0; - // } - // //////////////////////////////////////////////////////////////////////////// - // para->cudaCopyCpTopInit(i); - // //////////////////////////////////////////////////////////////////////////// - // } - // } - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Bottom - //for (int i = 0; i <= level; i++) { - // int temp = obj_cpBottom->getSize(i); - // if (temp > 0) - // { - // cout << "Groesse der Daten CpBottom, Level " << i << " : " << temp << endl; - // //////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->numberOfPointsCpBottom = temp; - // para->getParD(i)->numberOfPointsCpBottom = temp; - // //////////////////////////////////////////////////////////////////////////// - // para->cudaAllocCpBottom(i); - // //////////////////////////////////////////////////////////////////////////// - // //Indexarray - // obj_cpBottom->initIndex(para->getParH(i)->cpBottomIndex, i); - // //////////////////////////////////////////////////////////////////////////// - // for (int m = 0; m < temp; m++) - // { - // para->getParH(i)->cpPressBottom[m] = 0.0; - // } - // //////////////////////////////////////////////////////////////////////////// - // para->cudaCopyCpBottomInit(i); - // //////////////////////////////////////////////////////////////////////////// - // } - //} - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////Bottom 2 - //for (int i = 0; i <= level; i++) { - // int temp = obj_cpBottom2->getSize(i); - // if (temp > 0) - // { - // cout << "Groesse der Daten CpBottom2, Level " << i << " : " << temp << endl; - // //////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->numberOfPointsCpBottom2 = temp; - // para->getParD(i)->numberOfPointsCpBottom2 = temp; - // //////////////////////////////////////////////////////////////////////////// - // para->cudaAllocCpBottom2(i); - // //////////////////////////////////////////////////////////////////////////// - // //Indexarray - // obj_cpBottom2->initIndex(para->getParH(i)->cpBottom2Index, i); - // //////////////////////////////////////////////////////////////////////////// - // for (int m = 0; m < temp; m++) - // { - // para->getParH(i)->cpPressBottom2[m] = 0.0; - // } - // //////////////////////////////////////////////////////////////////////////// - // para->cudaCopyCpBottom2Init(i); - // //////////////////////////////////////////////////////////////////////////// - // } - //} - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // delete obj_cpTop; - // //delete obj_cpBottom; - // //delete obj_cpBottom2; - //}//ende cp - - //cout << "Test 4 " << endl; - - - //--------------------------------------------------------------------------// - if (para->getConcFile()){ - BoundaryValues *obj_Conc=new BoundaryValues(para->getConcentration()); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //concentration - for (int i = 0; i <= level; i++) { - int temp = obj_Conc->getSize(i); - if (temp > 0) - { - cout << "Groesse der Daten Concentration, Level " << i << " : " << temp << endl; - //////////////////////////////////////////////////////////////////////////// - para->getParH(i)->numberOfPointsConc = temp; - para->getParD(i)->numberOfPointsConc = temp; - //////////////////////////////////////////////////////////////////////////// - para->cudaAllocConcFile(i); - //////////////////////////////////////////////////////////////////////////// - //Indexarray - obj_Conc->initIndex(para->getParH(i)->concIndex, i); - //////////////////////////////////////////////////////////////////////////// - para->cudaCopyConcFile(i); - //////////////////////////////////////////////////////////////////////////// - } - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - delete obj_Conc; - }//end concentration - - //cout << "Test 5 " << endl; - - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //processor boundary (Martin Sch.) - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////1D domain decomposition - //if ( (para->getNumprocs() > 1) && (procNeighborsSend.size() == procNeighborsRecv.size()) ) - //{ - // for (int j = 0; j < procNeighborsSend.size(); j++) - // { - // for (int i = 0; i <= level; i++) { - // int tempSend = procNeighborsSend[j]->getSize(i); - // int tempRecv = procNeighborsRecv[j]->getSize(i); - // if (tempSend > 0) - // { - // //////////////////////////////////////////////////////////////////////////////////////// - // //send - // cout << "Groesse der Daten für den Sendepuffer, Level " << i << " : " << tempSend << endl; - // //////////////////////////////////////////////////////////////////////////////////////// - // para->setNumberOfProcessNeighbors((unsigned int)procNeighborsSend.size(), i, "send"); - // para->getParH(i)->sendProcessNeighbor[j].rankNeighbor = neighborRank[j]; - // //////////////////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->sendProcessNeighbor[j].numberOfNodes = tempSend; - // para->getParD(i)->sendProcessNeighbor[j].numberOfNodes = tempSend; - // para->getParH(i)->sendProcessNeighbor[j].numberOfFs = para->getD3Qxx() * tempSend; - // para->getParD(i)->sendProcessNeighbor[j].numberOfFs = para->getD3Qxx() * tempSend; - // para->getParH(i)->sendProcessNeighbor[j].memsizeIndex = sizeof(unsigned int)*tempSend; - // para->getParD(i)->sendProcessNeighbor[j].memsizeIndex = sizeof(unsigned int)*tempSend; - // para->getParH(i)->sendProcessNeighbor[j].memsizeFs = sizeof(doubflo) *tempSend; - // para->getParD(i)->sendProcessNeighbor[j].memsizeFs = sizeof(doubflo) *tempSend; - // //////////////////////////////////////////////////////////////////////////////////////// - // //cout << "Groesse send numberOfNodes Host, Level " << i << " : " << para->getParH(i)->sendProcessNeighbor[j].numberOfNodes << endl; - // //cout << "Groesse send numberOfNodes Device, Level " << i << " : " << para->getParD(i)->sendProcessNeighbor[j].numberOfNodes << endl; - // //cout << "Groesse send numberOfFs Host, Level " << i << " : " << para->getParH(i)->sendProcessNeighbor[j].numberOfFs << endl; - // //cout << "Groesse send numberOfFs Device, Level " << i << " : " << para->getParD(i)->sendProcessNeighbor[j].numberOfFs << endl; - // //cout << "Groesse send memsizeIndex Host, Level " << i << " : " << para->getParH(i)->sendProcessNeighbor[j].memsizeIndex << endl; - // //cout << "Groesse send memsizeIndex Device, Level " << i << " : " << para->getParD(i)->sendProcessNeighbor[j].memsizeIndex << endl; - // //cout << "Groesse send memsizeFs Host, Level " << i << " : " << para->getParH(i)->sendProcessNeighbor[j].memsizeFs << endl; - // //cout << "Groesse send memsizeFs Device, Level " << i << " : " << para->getParD(i)->sendProcessNeighbor[j].memsizeFs << endl; - // //////////////////////////////////////////////////////////////////////////////////////// - // //recv - // cout << "Groesse der Daten für den Empfangspuffer, Level " << i << " : " << tempRecv << endl; - // //////////////////////////////////////////////////////////////////////////////////////// - // para->setNumberOfProcessNeighbors((unsigned int)procNeighborsRecv.size(), i, "recv"); - // para->getParH(i)->recvProcessNeighbor[j].rankNeighbor = neighborRank[j]; - // //////////////////////////////////////////////////////////////////////////////////////// - // para->getParH(i)->recvProcessNeighbor[j].numberOfNodes = tempRecv; - // para->getParD(i)->recvProcessNeighbor[j].numberOfNodes = tempRecv; - // para->getParH(i)->recvProcessNeighbor[j].numberOfFs = para->getD3Qxx() * tempRecv; - // para->getParD(i)->recvProcessNeighbor[j].numberOfFs = para->getD3Qxx() * tempRecv; - // para->getParH(i)->recvProcessNeighbor[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - // para->getParD(i)->recvProcessNeighbor[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - // para->getParH(i)->recvProcessNeighbor[j].memsizeFs = sizeof(doubflo) *tempRecv; - // para->getParD(i)->recvProcessNeighbor[j].memsizeFs = sizeof(doubflo) *tempRecv; - // //////////////////////////////////////////////////////////////////////////////////////// - // //cout << "Groesse recv numberOfNodes Host, Level " << i << " : " << para->getParH(i)->recvProcessNeighbor[j].numberOfNodes << endl; - // //cout << "Groesse recv numberOfNodes Device, Level " << i << " : " << para->getParD(i)->recvProcessNeighbor[j].numberOfNodes << endl; - // //cout << "Groesse recv numberOfFs Host, Level " << i << " : " << para->getParH(i)->recvProcessNeighbor[j].numberOfFs << endl; - // //cout << "Groesse recv numberOfFs Device, Level " << i << " : " << para->getParD(i)->recvProcessNeighbor[j].numberOfFs << endl; - // //cout << "Groesse recv memsizeIndex Host, Level " << i << " : " << para->getParH(i)->recvProcessNeighbor[j].memsizeIndex << endl; - // //cout << "Groesse recv memsizeIndex Device, Level " << i << " : " << para->getParD(i)->recvProcessNeighbor[j].memsizeIndex << endl; - // //cout << "Groesse recv memsizeFs Host, Level " << i << " : " << para->getParH(i)->recvProcessNeighbor[j].memsizeFs << endl; - // //cout << "Groesse recv memsizeFs Device, Level " << i << " : " << para->getParD(i)->recvProcessNeighbor[j].memsizeFs << endl; - // //////////////////////////////////////////////////////////////////////////////////////// - // //malloc on host and device - // para->cudaAllocProcessNeighbor(i, j); - // //////////////////////////////////////////////////////////////////////////////////////// - // //init index arrays - // procNeighborsSend[j]->initIndex(para->getParH(i)->sendProcessNeighbor[j].index, i); - // procNeighborsRecv[j]->initIndex(para->getParH(i)->recvProcessNeighbor[j].index, i); - // //////////////////////////////////////////////////////////////////////////////////////// - // para->cudaCopyProcessNeighborIndex(i, j); - // //////////////////////////////////////////////////////////////////////////////////////// - // } - // } - // } - //}//ende processor boundarys - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //3D domain decomposition - // X - if ( (para->getNumprocs() > 1) && (procNeighborsSendX.size() == procNeighborsRecvX.size()) ) - { - for (int j = 0; j < procNeighborsSendX.size(); j++) - { - for (int i = 0; i <= level; i++) { - int tempSend = procNeighborsSendX[j]->getSize(i); - int tempRecv = procNeighborsRecvX[j]->getSize(i); - if (tempSend > 0) - { - //////////////////////////////////////////////////////////////////////////////////////// - //send - cout << "Groesse der Daten für den X Sendepuffer, Level " << i << " : " << tempSend << endl; - //////////////////////////////////////////////////////////////////////////////////////// - para->setNumberOfProcessNeighborsX((unsigned int)procNeighborsSendX.size(), i, "send"); - para->getParH(i)->sendProcessNeighborX[j].rankNeighbor = neighborRankX[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborX[j].numberOfNodes = tempSend; - para->getParD(i)->sendProcessNeighborX[j].numberOfNodes = tempSend; - para->getParH(i)->sendProcessNeighborX[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParD(i)->sendProcessNeighborX[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParH(i)->sendProcessNeighborX[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParD(i)->sendProcessNeighborX[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParH(i)->sendProcessNeighborX[j].memsizeFs = sizeof(doubflo) *tempSend; - para->getParD(i)->sendProcessNeighborX[j].memsizeFs = sizeof(doubflo) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - cout << "Groesse der Daten für den X Empfangspuffer, Level " << i << " : " << tempRecv << endl; - //////////////////////////////////////////////////////////////////////////////////////// - para->setNumberOfProcessNeighborsX((unsigned int)procNeighborsRecvX.size(), i, "recv"); - para->getParH(i)->recvProcessNeighborX[j].rankNeighbor = neighborRankX[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborX[j].numberOfNodes = tempRecv; - para->getParD(i)->recvProcessNeighborX[j].numberOfNodes = tempRecv; - para->getParH(i)->recvProcessNeighborX[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParD(i)->recvProcessNeighborX[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParH(i)->recvProcessNeighborX[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParD(i)->recvProcessNeighborX[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParH(i)->recvProcessNeighborX[j].memsizeFs = sizeof(doubflo) *tempRecv; - para->getParD(i)->recvProcessNeighborX[j].memsizeFs = sizeof(doubflo) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device - para->cudaAllocProcessNeighborX(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendX[j]->initIndex(para->getParH(i)->sendProcessNeighborX[j].index, i); - procNeighborsRecvX[j]->initIndex(para->getParH(i)->recvProcessNeighborX[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyProcessNeighborXIndex(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - }//ende X processor boundarys - ////////////////////////////////////////////////////////////////////////// - // Y - if ( (para->getNumprocs() > 1) && (procNeighborsSendY.size() == procNeighborsRecvY.size()) ) - { - for (int j = 0; j < procNeighborsSendY.size(); j++) - { - for (int i = 0; i <= level; i++) { - int tempSend = procNeighborsSendY[j]->getSize(i); - int tempRecv = procNeighborsRecvY[j]->getSize(i); - if (tempSend > 0) - { - //////////////////////////////////////////////////////////////////////////////////////// - //send - cout << "Groesse der Daten für den Y Sendepuffer, Level " << i << " : " << tempSend << endl; - //////////////////////////////////////////////////////////////////////////////////////// - para->setNumberOfProcessNeighborsY((unsigned int)procNeighborsSendY.size(), i, "send"); - para->getParH(i)->sendProcessNeighborY[j].rankNeighbor = neighborRankY[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborY[j].numberOfNodes = tempSend; - para->getParD(i)->sendProcessNeighborY[j].numberOfNodes = tempSend; - para->getParH(i)->sendProcessNeighborY[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParD(i)->sendProcessNeighborY[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParH(i)->sendProcessNeighborY[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParD(i)->sendProcessNeighborY[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParH(i)->sendProcessNeighborY[j].memsizeFs = sizeof(doubflo) *tempSend; - para->getParD(i)->sendProcessNeighborY[j].memsizeFs = sizeof(doubflo) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - cout << "Groesse der Daten für den Y Empfangspuffer, Level " << i << " : " << tempRecv << endl; - //////////////////////////////////////////////////////////////////////////////////////// - para->setNumberOfProcessNeighborsY((unsigned int)procNeighborsRecvY.size(), i, "recv"); - para->getParH(i)->recvProcessNeighborY[j].rankNeighbor = neighborRankY[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborY[j].numberOfNodes = tempRecv; - para->getParD(i)->recvProcessNeighborY[j].numberOfNodes = tempRecv; - para->getParH(i)->recvProcessNeighborY[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParD(i)->recvProcessNeighborY[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParH(i)->recvProcessNeighborY[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParD(i)->recvProcessNeighborY[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParH(i)->recvProcessNeighborY[j].memsizeFs = sizeof(doubflo) *tempRecv; - para->getParD(i)->recvProcessNeighborY[j].memsizeFs = sizeof(doubflo) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device - para->cudaAllocProcessNeighborY(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendY[j]->initIndex(para->getParH(i)->sendProcessNeighborY[j].index, i); - procNeighborsRecvY[j]->initIndex(para->getParH(i)->recvProcessNeighborY[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyProcessNeighborYIndex(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - }//ende Y processor boundarys - ////////////////////////////////////////////////////////////////////////// - // Z - if ( (para->getNumprocs() > 1) && (procNeighborsSendZ.size() == procNeighborsRecvZ.size()) ) - { - for (int j = 0; j < procNeighborsSendZ.size(); j++) - { - for (int i = 0; i <= level; i++) { - int tempSend = procNeighborsSendZ[j]->getSize(i); - int tempRecv = procNeighborsRecvZ[j]->getSize(i); - if (tempSend > 0) - { - //////////////////////////////////////////////////////////////////////////////////////// - //send - cout << "Groesse der Daten für den Z Sendepuffer, Level " << i << " : " << tempSend << endl; - //////////////////////////////////////////////////////////////////////////////////////// - para->setNumberOfProcessNeighborsZ((unsigned int)procNeighborsSendZ.size(), i, "send"); - para->getParH(i)->sendProcessNeighborZ[j].rankNeighbor = neighborRankZ[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborZ[j].numberOfNodes = tempSend; - para->getParD(i)->sendProcessNeighborZ[j].numberOfNodes = tempSend; - para->getParH(i)->sendProcessNeighborZ[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParD(i)->sendProcessNeighborZ[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParH(i)->sendProcessNeighborZ[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParD(i)->sendProcessNeighborZ[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParH(i)->sendProcessNeighborZ[j].memsizeFs = sizeof(doubflo) *tempSend; - para->getParD(i)->sendProcessNeighborZ[j].memsizeFs = sizeof(doubflo) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - cout << "Groesse der Daten für den Z Empfangspuffer, Level " << i << " : " << tempRecv << endl; - //////////////////////////////////////////////////////////////////////////////////////// - para->setNumberOfProcessNeighborsZ((unsigned int)procNeighborsRecvZ.size(), i, "recv"); - para->getParH(i)->recvProcessNeighborZ[j].rankNeighbor = neighborRankZ[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborZ[j].numberOfNodes = tempRecv; - para->getParD(i)->recvProcessNeighborZ[j].numberOfNodes = tempRecv; - para->getParH(i)->recvProcessNeighborZ[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParD(i)->recvProcessNeighborZ[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParH(i)->recvProcessNeighborZ[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParD(i)->recvProcessNeighborZ[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParH(i)->recvProcessNeighborZ[j].memsizeFs = sizeof(doubflo) *tempRecv; - para->getParD(i)->recvProcessNeighborZ[j].memsizeFs = sizeof(doubflo) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device - para->cudaAllocProcessNeighborZ(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendZ[j]->initIndex(para->getParH(i)->sendProcessNeighborZ[j].index, i); - procNeighborsRecvZ[j]->initIndex(para->getParH(i)->recvProcessNeighborZ[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyProcessNeighborZIndex(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - }//ende Z processor boundarys - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //3D domain decomposition convection diffusion - if (para->getDiffOn()==true){ - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // X - if ( (para->getNumprocs() > 1) && (procNeighborsSendADX.size() == procNeighborsRecvADX.size()) ) - { - for (int j = 0; j < procNeighborsSendADX.size(); j++) - { - for (int i = 0; i <= level; i++) { - int tempSend = procNeighborsSendADX[j]->getSize(i); - int tempRecv = procNeighborsRecvADX[j]->getSize(i); - if (tempSend > 0) - { - //////////////////////////////////////////////////////////////////////////////////////// - //send - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborADX[j].rankNeighbor = neighborRankADX[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborADX[j].numberOfNodes = tempSend; - para->getParD(i)->sendProcessNeighborADX[j].numberOfNodes = tempSend; - para->getParH(i)->sendProcessNeighborADX[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParD(i)->sendProcessNeighborADX[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParH(i)->sendProcessNeighborADX[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParD(i)->sendProcessNeighborADX[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParH(i)->sendProcessNeighborADX[j].memsizeFs = sizeof(doubflo) *tempSend; - para->getParD(i)->sendProcessNeighborADX[j].memsizeFs = sizeof(doubflo) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborADX[j].rankNeighbor = neighborRankADX[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborADX[j].numberOfNodes = tempRecv; - para->getParD(i)->recvProcessNeighborADX[j].numberOfNodes = tempRecv; - para->getParH(i)->recvProcessNeighborADX[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParD(i)->recvProcessNeighborADX[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParH(i)->recvProcessNeighborADX[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParD(i)->recvProcessNeighborADX[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParH(i)->recvProcessNeighborADX[j].memsizeFs = sizeof(doubflo) *tempRecv; - para->getParD(i)->recvProcessNeighborADX[j].memsizeFs = sizeof(doubflo) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device - para->cudaAllocProcessNeighborADX(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendADX[j]->initIndex(para->getParH(i)->sendProcessNeighborADX[j].index, i); - procNeighborsRecvADX[j]->initIndex(para->getParH(i)->recvProcessNeighborADX[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyProcessNeighborADXIndex(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - }//ende X processor boundarys - ////////////////////////////////////////////////////////////////////////// - // Y - if ( (para->getNumprocs() > 1) && (procNeighborsSendADY.size() == procNeighborsRecvADY.size()) ) - { - for (int j = 0; j < procNeighborsSendADY.size(); j++) - { - for (int i = 0; i <= level; i++) { - int tempSend = procNeighborsSendADY[j]->getSize(i); - int tempRecv = procNeighborsRecvADY[j]->getSize(i); - if (tempSend > 0) - { - //////////////////////////////////////////////////////////////////////////////////////// - //send - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborADY[j].rankNeighbor = neighborRankADY[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborADY[j].numberOfNodes = tempSend; - para->getParD(i)->sendProcessNeighborADY[j].numberOfNodes = tempSend; - para->getParH(i)->sendProcessNeighborADY[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParD(i)->sendProcessNeighborADY[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParH(i)->sendProcessNeighborADY[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParD(i)->sendProcessNeighborADY[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParH(i)->sendProcessNeighborADY[j].memsizeFs = sizeof(doubflo) *tempSend; - para->getParD(i)->sendProcessNeighborADY[j].memsizeFs = sizeof(doubflo) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborADY[j].rankNeighbor = neighborRankADY[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborADY[j].numberOfNodes = tempRecv; - para->getParD(i)->recvProcessNeighborADY[j].numberOfNodes = tempRecv; - para->getParH(i)->recvProcessNeighborADY[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParD(i)->recvProcessNeighborADY[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParH(i)->recvProcessNeighborADY[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParD(i)->recvProcessNeighborADY[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParH(i)->recvProcessNeighborADY[j].memsizeFs = sizeof(doubflo) *tempRecv; - para->getParD(i)->recvProcessNeighborADY[j].memsizeFs = sizeof(doubflo) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device - para->cudaAllocProcessNeighborADY(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendADY[j]->initIndex(para->getParH(i)->sendProcessNeighborADY[j].index, i); - procNeighborsRecvADY[j]->initIndex(para->getParH(i)->recvProcessNeighborADY[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyProcessNeighborADYIndex(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - }//ende Y processor boundarys - ////////////////////////////////////////////////////////////////////////// - // Z - if ( (para->getNumprocs() > 1) && (procNeighborsSendADZ.size() == procNeighborsRecvADZ.size()) ) - { - for (int j = 0; j < procNeighborsSendADZ.size(); j++) - { - for (int i = 0; i <= level; i++) { - int tempSend = procNeighborsSendADZ[j]->getSize(i); - int tempRecv = procNeighborsRecvADZ[j]->getSize(i); - if (tempSend > 0) - { - //////////////////////////////////////////////////////////////////////////////////////// - //send - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborADZ[j].rankNeighbor = neighborRankADZ[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->sendProcessNeighborADZ[j].numberOfNodes = tempSend; - para->getParD(i)->sendProcessNeighborADZ[j].numberOfNodes = tempSend; - para->getParH(i)->sendProcessNeighborADZ[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParD(i)->sendProcessNeighborADZ[j].numberOfFs = para->getD3Qxx() * tempSend; - para->getParH(i)->sendProcessNeighborADZ[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParD(i)->sendProcessNeighborADZ[j].memsizeIndex = sizeof(unsigned int)*tempSend; - para->getParH(i)->sendProcessNeighborADZ[j].memsizeFs = sizeof(doubflo) *tempSend; - para->getParD(i)->sendProcessNeighborADZ[j].memsizeFs = sizeof(doubflo) *tempSend; - //////////////////////////////////////////////////////////////////////////////////////// - //recv - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborADZ[j].rankNeighbor = neighborRankADZ[j]; - //////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->recvProcessNeighborADZ[j].numberOfNodes = tempRecv; - para->getParD(i)->recvProcessNeighborADZ[j].numberOfNodes = tempRecv; - para->getParH(i)->recvProcessNeighborADZ[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParD(i)->recvProcessNeighborADZ[j].numberOfFs = para->getD3Qxx() * tempRecv; - para->getParH(i)->recvProcessNeighborADZ[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParD(i)->recvProcessNeighborADZ[j].memsizeIndex = sizeof(unsigned int)*tempRecv; - para->getParH(i)->recvProcessNeighborADZ[j].memsizeFs = sizeof(doubflo) *tempRecv; - para->getParD(i)->recvProcessNeighborADZ[j].memsizeFs = sizeof(doubflo) *tempRecv; - //////////////////////////////////////////////////////////////////////////////////////// - //malloc on host and device - para->cudaAllocProcessNeighborADZ(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - //init index arrays - procNeighborsSendADZ[j]->initIndex(para->getParH(i)->sendProcessNeighborADZ[j].index, i); - procNeighborsRecvADZ[j]->initIndex(para->getParH(i)->recvProcessNeighborADZ[j].index, i); - //////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyProcessNeighborADZIndex(i, j); - //////////////////////////////////////////////////////////////////////////////////////// - } - } - } - }//ende Z processor boundarys - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - - - - - //---------------------------------------------------------------------//BIS HIER CODE FUER MARTIN////-------------------------------------------------------------------// - - - for (int i = 0; i < t; i++) { - delete BC_Values[i]; - } - - delete BC_Values; - delete obj_geomV; - - cout << "-----Ende config Arrays BoundaryValues-----" <<endl; -} - -void Interface::allocArrays_BoundaryQs(Parameter* para) { - cout << "-----Config Arrays BoundaryQs------" <<endl; - //cout << "1: MyID: " << para->getMyID() << endl; - int t = 6; - - //cout << "2: MyID: " << para->getMyID() << endl; - BoundaryQs **BC_Qs = new BoundaryQs*[t]; - this->sortSystem(BC_Qs, para, t); - - - //cout << "3: MyID: " << para->getMyID() << endl; - BoundaryQs *obj_geomQ = new BoundaryQs(para->getgeomBoundaryBcQs(), para, "geo", false); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Normals Geo - BoundaryQs *obj_geomNormalX = new BoundaryQs(para->getgeomBoundaryNormalX(), para, "geoNormal", false); - BoundaryQs *obj_geomNormalY = new BoundaryQs(para->getgeomBoundaryNormalY(), para, "geoNormal", false); - BoundaryQs *obj_geomNormalZ = new BoundaryQs(para->getgeomBoundaryNormalZ(), para, "geoNormal", false); - ////////////////////////////////////////////////////////////////////////// - //Normals Inflow - BoundaryQs *obj_inflowNormalX = new BoundaryQs(para->getInflowBoundaryNormalX(), para, "inflowNormal", false); - BoundaryQs *obj_inflowNormalY = new BoundaryQs(para->getInflowBoundaryNormalY(), para, "inflowNormal", false); - BoundaryQs *obj_inflowNormalZ = new BoundaryQs(para->getInflowBoundaryNormalZ(), para, "inflowNormal", false); - ////////////////////////////////////////////////////////////////////////// - //Normals Outflow - BoundaryQs *obj_outflowNormalX = new BoundaryQs(para->getOutflowBoundaryNormalX(), para, "outflowNormal", false); - BoundaryQs *obj_outflowNormalY = new BoundaryQs(para->getOutflowBoundaryNormalY(), para, "outflowNormal", false); - BoundaryQs *obj_outflowNormalZ = new BoundaryQs(para->getOutflowBoundaryNormalZ(), para, "outflowNormal", false); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - int level = BC_Qs[0]->getLevel(); - - //cout << "4: MyID: " << para->getMyID() << endl; - - //-----------------------------------------Vektoren Deklarationen----------- - vector<vector<vector<doubflo> > > noslipQs; - vector<vector<unsigned int> > noslipIndex; - vector<vector<vector<doubflo> > > slipQs; - vector<vector<unsigned int> > slipIndex; - vector<vector<vector<doubflo> > > pressureQs; - vector<vector<unsigned int> > pressureIndex; - vector<vector<vector<doubflo> > > velocityQs; - vector<vector<unsigned int> > velocityIndex; - vector<vector<vector<doubflo> > > outflowQs; - vector<vector<unsigned int> > outflowIndex; - //Geom-Daten werden mit dem Methode initArray() auf die Arrays kopiert. kein GetSet! - - //cout << "5: MyID: " << para->getMyID() << endl; - noslipQs.resize(level+1); - slipQs.resize(level+1); - pressureQs.resize(level+1); - velocityQs.resize(level+1); - outflowQs.resize(level+1); - - noslipIndex.resize(level+1); - slipIndex.resize(level+1); - pressureIndex.resize(level+1); - velocityIndex.resize(level+1); - outflowIndex.resize(level+1); - - //cout << "6: MyID: " << para->getMyID() << endl; - - for(int i=0; i<=level;i++) { - noslipQs[i].resize(27); - slipQs[i].resize(27); - pressureQs[i].resize(27); - velocityQs[i].resize(27); - outflowQs[i].resize(27); - } - - //cout << "7: MyID: " << para->getMyID() << endl; - - for (int i = 0; i < t; i++){ - if (this->way[i] == "noSlip") { noslipQs = BC_Qs[i]->setgetBoundarys(noslipQs); noslipIndex = BC_Qs[i]->setgetIndex(noslipIndex); } - else if (this->way[i] == "velocity") { velocityQs = BC_Qs[i]->setgetBoundarys(velocityQs); velocityIndex = BC_Qs[i]->setgetIndex(velocityIndex); } - else if (this->way[i] == "pressure") { pressureQs = BC_Qs[i]->setgetBoundarys(pressureQs); pressureIndex = BC_Qs[i]->setgetIndex(pressureIndex); } - else if (this->way[i] == "slip") { slipQs = BC_Qs[i]->setgetBoundarys(slipQs); slipIndex = BC_Qs[i]->setgetIndex(slipIndex); } - else if (this->way[i] == "outflow") { outflowQs = BC_Qs[i]->setgetBoundarys(outflowQs); outflowIndex = BC_Qs[i]->setgetIndex(outflowIndex); } - } - - - - //TEST Soeren--------------------------------------------------------------------------------------------------------------------------------------------------- - //if (TEST == true) { - // for (int i = 0; i <= level; i++) { - // int temp = (int)velocityQs[i][0].size(); - // cout << "Groesse VelocityQs lvl " << i << " : " << temp << endl; - // } - // for (int i = 0; i <= level; i++) { - // int temp = (int)pressureQs[i][0].size(); - // cout << "Groesse PressureQs lvl " << i << " : " << temp << endl; - // } - // for (int i = 0; i <= level; i++) { - // int temp = (int)slipQs[i][0].size(); - // cout << "Groesse slipQs lvl " << i << " : " << temp << endl; - // } - // for (int i = 0; i <= level; i++) { - // int temp = (int)noslipQs[i][0].size(); - // cout << "Groesse noslipQs lvl " << i << " : " << temp << endl; - // } - // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //int ausgabe = 1; - // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // cout << endl; - // cout << "TEST PRESSURE Qs: " << endl; - // for (int j = 0; j <= level; j++) { - // if (pressureQs[j][0].size() > 0){ - // for (int i = 0; i < ausgabe; i++) { - // cout << "PressureQs level " << j << ", eintrag " << i << " , index " << pressureIndex[j][i] << " :" << endl; - // for (int k = 0; k < 27; k++) { - // cout << pressureQs[j][k][i] << "|"; - // } - // cout << endl; - // cout << endl; - // } - // for (unsigned int i = pressureQs[j][0].size() - ausgabe; i < pressureQs[j][0].size(); i++) { - // cout << "PressureQs level " << j << ", eintrag " << i << " , index " << pressureIndex[j][i] << " :" << endl; - // for (int k = 0; k < 27; k++) { - // cout << pressureQs[j][k][i] << "|"; - // } - // cout << endl; - // cout << endl; - // } - // } - // } - // cout << endl; - // cout << "TEST VELOCITY Qs: " << endl; - // for (int j = 0; j <= level; j++) { - // if (velocityQs[j][0].size() > 0){ - // for (int i = 0; i < ausgabe; i++) { - // cout << "velocityQs level " << j << ", eintrag " << i << " , index " << velocityIndex[j][i] << " :" << endl; - // for (int k = 0; k < 27; k++) { - // cout << velocityQs[j][k][i] << "|"; - // } - // cout << endl; - // cout << endl; - // } - // for (unsigned int i = velocityQs[j][0].size() - ausgabe; i < velocityQs[j][0].size(); i++) { - // cout << "velocityQs level " << j << ", eintrag " << i << " , index " << velocityIndex[j][i] << " :" << endl; - // for (int k = 0; k < 27; k++) { - // cout << velocityQs[j][k][i] << "|"; - // } - // cout << endl; - // cout << endl; - // } - // } - // } - // cout << endl; - //cout << "TEST NOSLIP Qs: " << endl; - //for (int j = 0; j <= level; j++) { - // if (noslipQs[j][0].size() > 0){ - // for (int i = 0; i < ausgabe; i++) { - // cout << "noslipQs level " << j << ", eintrag " << i << " , index " << noslipIndex[j][i] << " :" << endl; - // for (int k = 0; k < 27; k++) { - // cout << noslipQs[j][k][i] << "|"; - // } - // cout << endl; - // cout << endl; - // } - // for (unsigned int i = noslipQs[j][0].size() - ausgabe; i < noslipQs[j][0].size(); i++) { - // cout << "noslipQs level " << j << ", eintrag " << i << " , index " << noslipIndex[j][i] << " :" << endl; - // for (int k = 0; k < 27; k++) { - // cout << noslipQs[j][k][i] << "|"; - // } - // cout << endl; - // cout << endl; - // } - // } - //} - // cout << endl; - // cout << "TEST SLIP Qs: " << endl; - // for (int j = 0; j <= level; j++) { - // if (slipQs[j][0].size() > 0){ - // for (int i = 0; i < ausgabe; i++) { - // cout << "slipQs level " << j << ", eintrag " << i << " , index " << slipIndex[j][i] << " :" << endl; - // for (int k = 0; k < 27; k++) { - // cout << slipQs[j][k][i] << "|"; - // } - // cout << endl; - // cout << endl; - // } - // for (unsigned int i = slipQs[j][0].size() - ausgabe; i < slipQs[j][0].size(); i++) { - // cout << "slipQs level " << j << ", eintrag " << i << " , index " << slipIndex[j][i] << " :" << endl; - // for (int k = 0; k < 27; k++) { - // cout << slipQs[j][k][i] << "|"; - // } - // cout << endl; - // cout << endl; - // } - // } - // } - //} - //ENDE TEST Soeren--------------------------------------------------------------------------------------------------------------------------------------------------- - - //---------------------------------------------------------------------//AB HIER CODE FUER MARTIN////-------------------------------------------------------------------// - //---------------------------------------------------------------------// - //cout << "10: MyID: " << para->getMyID() << endl; - - for (int i = 0; i <= level; i++) { - int temp1 = (int)pressureIndex[i].size(); - if (temp1 > 0) - { - cout << "Groesse Pressure: " << i << " : " << temp1 << endl; - //cout << "Groesse Pressure: " << i << " : " << temp1 << "MyID: " << para->getMyID() << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //preprocessing - doubflo* QQ = para->getParH(i)->QPress.q27[0]; - unsigned int sizeQ = para->getParH(i)->QPress.kQ; - QforBoundaryConditions Q; - Q.q27[dirE] = &QQ[dirE *sizeQ]; - Q.q27[dirW] = &QQ[dirW *sizeQ]; - Q.q27[dirN] = &QQ[dirN *sizeQ]; - Q.q27[dirS] = &QQ[dirS *sizeQ]; - Q.q27[dirT] = &QQ[dirT *sizeQ]; - Q.q27[dirB] = &QQ[dirB *sizeQ]; - Q.q27[dirNE] = &QQ[dirNE *sizeQ]; - Q.q27[dirSW] = &QQ[dirSW *sizeQ]; - Q.q27[dirSE] = &QQ[dirSE *sizeQ]; - Q.q27[dirNW] = &QQ[dirNW *sizeQ]; - Q.q27[dirTE] = &QQ[dirTE *sizeQ]; - Q.q27[dirBW] = &QQ[dirBW *sizeQ]; - Q.q27[dirBE] = &QQ[dirBE *sizeQ]; - Q.q27[dirTW] = &QQ[dirTW *sizeQ]; - Q.q27[dirTN] = &QQ[dirTN *sizeQ]; - Q.q27[dirBS] = &QQ[dirBS *sizeQ]; - Q.q27[dirBN] = &QQ[dirBN *sizeQ]; - Q.q27[dirTS] = &QQ[dirTS *sizeQ]; - Q.q27[dirZERO] = &QQ[dirZERO*sizeQ]; - Q.q27[dirTNE] = &QQ[dirTNE *sizeQ]; - Q.q27[dirTSW] = &QQ[dirTSW *sizeQ]; - Q.q27[dirTSE] = &QQ[dirTSE *sizeQ]; - Q.q27[dirTNW] = &QQ[dirTNW *sizeQ]; - Q.q27[dirBNE] = &QQ[dirBNE *sizeQ]; - Q.q27[dirBSW] = &QQ[dirBSW *sizeQ]; - Q.q27[dirBSE] = &QQ[dirBSE *sizeQ]; - Q.q27[dirBNW] = &QQ[dirBNW *sizeQ]; - ////////////////////////////////////////////////////////////////// - int d = 0; - int j = 0; - int n = 0; - for (vector<vector<vector<doubflo> > >::iterator it = pressureQs.begin(); it != pressureQs.end(); it++) { - if (i == d) { - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - Q.q27[j][n] = *it3; - n++; - } - j++; // zaehlt die Spalte mit - n = 0; - } - } - d++; // zaehlt das Level mit - j = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - d = 0; - n = 0; - for (vector<vector<unsigned int> >::iterator it = pressureIndex.begin(); it != pressureIndex.end(); it++) { - if (i == d) { - for (vector<unsigned int>::iterator it2 = it->begin(); it2 != it->end(); it2++) { - para->getParH(i)->QPress.k[n] = *it2; - n++; - } - } - d++; - n = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // advection - diffusion stuff - //cout << "vor advec diff" << endl; - if (para->getDiffOn()==true){ - ////////////////////////////////////////////////////////////////////////// - //cout << "vor setzen von kTemp" << endl; - para->getParH(i)->TempPress.kTemp = temp1; - para->getParD(i)->TempPress.kTemp = temp1; - cout << "Groesse TempPress.kTemp = " << para->getParH(i)->TempPress.kTemp << endl; - ////////////////////////////////////////////////////////////////////////// - para->cudaAllocTempPressBC(i); - //cout << "nach alloc" << endl; - ////////////////////////////////////////////////////////////////////////// - for (int m = 0; m < temp1; m++) - { - para->getParH(i)->TempPress.temp[m] = para->getTemperatureInit(); - para->getParH(i)->TempPress.velo[m] = (doubflo)0.0; - para->getParH(i)->TempPress.k[m] = para->getParH(i)->QPress.k[m]; - } - ////////////////////////////////////////////////////////////////////////// - //cout << "vor copy" << endl; - para->cudaCopyTempPressBCHD(i); - //cout << "nach copy" << endl; - ////////////////////////////////////////////////////////////////////////// - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyPress(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - }//ende if - }//ende oberste for schleife - - - - //--------------------------------------------------------------------------// - for (int i = 0; i <= level; i++) { - int temp3 = (int)velocityIndex[i].size(); - if (temp3 > 0) - { - cout << "Groesse velocity level " << i << " : " << temp3 << endl; - //cout << "Groesse velocity level: " << i << " : " << temp3 << "MyID: " << para->getMyID() << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //preprocessing - doubflo* QQ = para->getParH(i)->Qinflow.q27[0]; - unsigned int sizeQ = para->getParH(i)->Qinflow.kQ; - QforBoundaryConditions Q; - Q.q27[dirE] = &QQ[dirE *sizeQ]; - Q.q27[dirW] = &QQ[dirW *sizeQ]; - Q.q27[dirN] = &QQ[dirN *sizeQ]; - Q.q27[dirS] = &QQ[dirS *sizeQ]; - Q.q27[dirT] = &QQ[dirT *sizeQ]; - Q.q27[dirB] = &QQ[dirB *sizeQ]; - Q.q27[dirNE] = &QQ[dirNE *sizeQ]; - Q.q27[dirSW] = &QQ[dirSW *sizeQ]; - Q.q27[dirSE] = &QQ[dirSE *sizeQ]; - Q.q27[dirNW] = &QQ[dirNW *sizeQ]; - Q.q27[dirTE] = &QQ[dirTE *sizeQ]; - Q.q27[dirBW] = &QQ[dirBW *sizeQ]; - Q.q27[dirBE] = &QQ[dirBE *sizeQ]; - Q.q27[dirTW] = &QQ[dirTW *sizeQ]; - Q.q27[dirTN] = &QQ[dirTN *sizeQ]; - Q.q27[dirBS] = &QQ[dirBS *sizeQ]; - Q.q27[dirBN] = &QQ[dirBN *sizeQ]; - Q.q27[dirTS] = &QQ[dirTS *sizeQ]; - Q.q27[dirZERO] = &QQ[dirZERO*sizeQ]; - Q.q27[dirTNE] = &QQ[dirTNE *sizeQ]; - Q.q27[dirTSW] = &QQ[dirTSW *sizeQ]; - Q.q27[dirTSE] = &QQ[dirTSE *sizeQ]; - Q.q27[dirTNW] = &QQ[dirTNW *sizeQ]; - Q.q27[dirBNE] = &QQ[dirBNE *sizeQ]; - Q.q27[dirBSW] = &QQ[dirBSW *sizeQ]; - Q.q27[dirBSE] = &QQ[dirBSE *sizeQ]; - Q.q27[dirBNW] = &QQ[dirBNW *sizeQ]; - ////////////////////////////////////////////////////////////////// - int d = 0; - int j = 0; - int n = 0; - for (vector<vector<vector<doubflo> > >::iterator it = velocityQs.begin(); it != velocityQs.end(); it++) { - if (i == d) { - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - Q.q27[j][n] = *it3; - - n++; - } - j++; // zaehlt die Spalte mit - n = 0; - } - } - d++; // zaehlt das Level mit - j = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - d = 0; - n = 0; - for (vector<vector<unsigned int> >::iterator it = velocityIndex.begin(); it != velocityIndex.end(); it++) { - if (i == d) { - for (vector<unsigned int>::iterator it2 = it->begin(); it2 != it->end(); it2++) { - para->getParH(i)->Qinflow.k[n] = *it2; - n++; - } - } - d++; - n = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // advection - diffusion stuff - if (para->getDiffOn()==true){ - ////////////////////////////////////////////////////////////////////////// - para->getParH(i)->TempVel.kTemp = temp3; - para->getParD(i)->TempVel.kTemp = temp3; - cout << "Groesse TempVel.kTemp = " << para->getParH(i)->TempPress.kTemp << endl; - cout << "getTemperatureInit = " << para->getTemperatureInit() << endl; - cout << "getTemperatureBC = " << para->getTemperatureBC() << endl; - ////////////////////////////////////////////////////////////////////////// - para->cudaAllocTempVeloBC(i); - //cout << "nach alloc " << endl; - ////////////////////////////////////////////////////////////////////////// - for (int m = 0; m < temp3; m++) - { - para->getParH(i)->TempVel.temp[m] = para->getTemperatureInit(); - para->getParH(i)->TempVel.tempPulse[m] = para->getTemperatureBC(); - para->getParH(i)->TempVel.velo[m] = para->getVelocity(); - para->getParH(i)->TempVel.k[m] = para->getParH(i)->Qinflow.k[m]; - } - ////////////////////////////////////////////////////////////////////////// - //cout << "vor copy " << endl; - para->cudaCopyTempVeloBCHD(i); - //cout << "nach copy " << endl; - ////////////////////////////////////////////////////////////////////////// - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyVeloBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - if (para->getIsInflowNormal()){ - int temp = obj_inflowNormalX->getSize(i); - if (temp > 0) - { - cout << "Groesse der Daten InflowBoundaryNormalsX, Level " << i << " : " << temp << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->QInflowNormalX.kQ = temp; - para->getParH(i)->QInflowNormalY.kQ = temp; - para->getParH(i)->QInflowNormalZ.kQ = temp; - para->getParD(i)->QInflowNormalX.kQ = para->getParH(i)->QInflowNormalX.kQ; - para->getParD(i)->QInflowNormalY.kQ = para->getParH(i)->QInflowNormalY.kQ; - para->getParD(i)->QInflowNormalZ.kQ = para->getParH(i)->QInflowNormalZ.kQ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocInflowNormals(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //Indexarray - obj_inflowNormalX->initIndex(para->getParH(i)->QInflowNormalX.k, i); - obj_inflowNormalY->initIndex(para->getParH(i)->QInflowNormalY.k, i); - obj_inflowNormalZ->initIndex(para->getParH(i)->QInflowNormalZ.k, i); - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing X - doubflo* QQX = para->getParH(i)->QInflowNormalX.q27[0]; - unsigned int sizeQX = para->getParH(i)->QInflowNormalX.kQ; - QforBoundaryConditions QX; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QX.q27[j] = &QQX[j * sizeQX]; - obj_inflowNormalX->initArray(QX.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing Y - doubflo* QQY = para->getParH(i)->QInflowNormalY.q27[0]; - unsigned int sizeQY = para->getParH(i)->QInflowNormalY.kQ; - QforBoundaryConditions QY; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QY.q27[j] = &QQY[j * sizeQY]; - obj_inflowNormalY->initArray(QY.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing Z - doubflo* QQZ = para->getParH(i)->QInflowNormalZ.q27[0]; - unsigned int sizeQZ = para->getParH(i)->QInflowNormalZ.kQ; - QforBoundaryConditions QZ; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QZ.q27[j] = &QQZ[j * sizeQZ]; - obj_inflowNormalZ->initArray(QZ.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyInflowNormals(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - } - } - }//ende oberste for schleife - - - - - - //--------------------------------------------------------------------------// - for (int i = 0; i <= level; i++) { - int temp = (int)outflowIndex[i].size(); - if (temp > 0) - { - cout << "Groesse Outflow: " << i << " : " << temp << endl; - //cout << "Groesse Pressure: " << i << " : " << temp1 << "MyID: " << para->getMyID() << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //preprocessing - doubflo* QQ = para->getParH(i)->Qoutflow.q27[0]; - unsigned int sizeQ = para->getParH(i)->Qoutflow.kQ; - QforBoundaryConditions Q; - Q.q27[dirE] = &QQ[dirE *sizeQ]; - Q.q27[dirW] = &QQ[dirW *sizeQ]; - Q.q27[dirN] = &QQ[dirN *sizeQ]; - Q.q27[dirS] = &QQ[dirS *sizeQ]; - Q.q27[dirT] = &QQ[dirT *sizeQ]; - Q.q27[dirB] = &QQ[dirB *sizeQ]; - Q.q27[dirNE] = &QQ[dirNE *sizeQ]; - Q.q27[dirSW] = &QQ[dirSW *sizeQ]; - Q.q27[dirSE] = &QQ[dirSE *sizeQ]; - Q.q27[dirNW] = &QQ[dirNW *sizeQ]; - Q.q27[dirTE] = &QQ[dirTE *sizeQ]; - Q.q27[dirBW] = &QQ[dirBW *sizeQ]; - Q.q27[dirBE] = &QQ[dirBE *sizeQ]; - Q.q27[dirTW] = &QQ[dirTW *sizeQ]; - Q.q27[dirTN] = &QQ[dirTN *sizeQ]; - Q.q27[dirBS] = &QQ[dirBS *sizeQ]; - Q.q27[dirBN] = &QQ[dirBN *sizeQ]; - Q.q27[dirTS] = &QQ[dirTS *sizeQ]; - Q.q27[dirZERO] = &QQ[dirZERO*sizeQ]; - Q.q27[dirTNE] = &QQ[dirTNE *sizeQ]; - Q.q27[dirTSW] = &QQ[dirTSW *sizeQ]; - Q.q27[dirTSE] = &QQ[dirTSE *sizeQ]; - Q.q27[dirTNW] = &QQ[dirTNW *sizeQ]; - Q.q27[dirBNE] = &QQ[dirBNE *sizeQ]; - Q.q27[dirBSW] = &QQ[dirBSW *sizeQ]; - Q.q27[dirBSE] = &QQ[dirBSE *sizeQ]; - Q.q27[dirBNW] = &QQ[dirBNW *sizeQ]; - ////////////////////////////////////////////////////////////////// - int d = 0; - int j = 0; - int n = 0; - for (vector<vector<vector<doubflo> > >::iterator it = outflowQs.begin(); it != outflowQs.end(); it++) { - if (i == d) { - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - Q.q27[j][n] = *it3; - n++; - } - j++; // zaehlt die Spalte mit - n = 0; - } - } - d++; // zaehlt das Level mit - j = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - d = 0; - n = 0; - for (vector<vector<unsigned int> >::iterator it = outflowIndex.begin(); it != outflowIndex.end(); it++) { - if (i == d) { - for (vector<unsigned int>::iterator it2 = it->begin(); it2 != it->end(); it2++) { - para->getParH(i)->Qoutflow.k[n] = *it2; - n++; - } - } - d++; - n = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyOutflowBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - if (para->getIsOutflowNormal()){ - int temp = obj_outflowNormalX->getSize(i); - if (temp > 0) - { - cout << "Groesse der Daten OutflowBoundaryNormalsX, Level " << i << " : " << temp << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->QOutflowNormalX.kQ = temp; - para->getParH(i)->QOutflowNormalY.kQ = temp; - para->getParH(i)->QOutflowNormalZ.kQ = temp; - para->getParD(i)->QOutflowNormalX.kQ = para->getParH(i)->QOutflowNormalX.kQ; - para->getParD(i)->QOutflowNormalY.kQ = para->getParH(i)->QOutflowNormalY.kQ; - para->getParD(i)->QOutflowNormalZ.kQ = para->getParH(i)->QOutflowNormalZ.kQ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocOutflowNormals(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //Indexarray - obj_outflowNormalX->initIndex(para->getParH(i)->QOutflowNormalX.k, i); - obj_outflowNormalY->initIndex(para->getParH(i)->QOutflowNormalY.k, i); - obj_outflowNormalZ->initIndex(para->getParH(i)->QOutflowNormalZ.k, i); - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing X - doubflo* QQX = para->getParH(i)->QOutflowNormalX.q27[0]; - unsigned int sizeQX = para->getParH(i)->QOutflowNormalX.kQ; - QforBoundaryConditions QX; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QX.q27[j] = &QQX[j * sizeQX]; - obj_outflowNormalX->initArray(QX.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing Y - doubflo* QQY = para->getParH(i)->QOutflowNormalY.q27[0]; - unsigned int sizeQY = para->getParH(i)->QOutflowNormalY.kQ; - QforBoundaryConditions QY; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QY.q27[j] = &QQY[j * sizeQY]; - obj_outflowNormalY->initArray(QY.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing Z - doubflo* QQZ = para->getParH(i)->QOutflowNormalZ.q27[0]; - unsigned int sizeQZ = para->getParH(i)->QOutflowNormalZ.kQ; - QforBoundaryConditions QZ; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QZ.q27[j] = &QQZ[j * sizeQZ]; - obj_outflowNormalZ->initArray(QZ.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyOutflowNormals(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - } - }//ende if - }//ende oberste for schleife - - - - - - //--------------------------------------------------------------------------// - for (int i = 0; i <= level; i++) { - int temp2 = (int)noslipQs[i][0].size(); - para->getParH(i)->QWall.kQ = temp2; - para->getParD(i)->QWall.kQ = para->getParH(i)->QWall.kQ; - para->getParH(i)->kQ = para->getParH(i)->QWall.kQ; - para->getParD(i)->kQ = para->getParH(i)->QWall.kQ; - if (temp2 > 0) - { - cout << "Groesse NoSlip: " << i << " : " << temp2 << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //para->getParH(i)->QWall.kQ = temp2; - //para->getParD(i)->QWall.kQ = para->getParH(i)->QWall.kQ; - //para->getParH(i)->kQ = para->getParH(i)->QWall.kQ; - //para->getParD(i)->kQ = para->getParH(i)->QWall.kQ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocWallBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //preprocessing - doubflo* QQ = para->getParH(i)->QWall.q27[0]; - unsigned int sizeQ = para->getParH(i)->QWall.kQ; - QforBoundaryConditions Q; - Q.q27[dirE] = &QQ[dirE *sizeQ]; - Q.q27[dirW] = &QQ[dirW *sizeQ]; - Q.q27[dirN] = &QQ[dirN *sizeQ]; - Q.q27[dirS] = &QQ[dirS *sizeQ]; - Q.q27[dirT] = &QQ[dirT *sizeQ]; - Q.q27[dirB] = &QQ[dirB *sizeQ]; - Q.q27[dirNE] = &QQ[dirNE *sizeQ]; - Q.q27[dirSW] = &QQ[dirSW *sizeQ]; - Q.q27[dirSE] = &QQ[dirSE *sizeQ]; - Q.q27[dirNW] = &QQ[dirNW *sizeQ]; - Q.q27[dirTE] = &QQ[dirTE *sizeQ]; - Q.q27[dirBW] = &QQ[dirBW *sizeQ]; - Q.q27[dirBE] = &QQ[dirBE *sizeQ]; - Q.q27[dirTW] = &QQ[dirTW *sizeQ]; - Q.q27[dirTN] = &QQ[dirTN *sizeQ]; - Q.q27[dirBS] = &QQ[dirBS *sizeQ]; - Q.q27[dirBN] = &QQ[dirBN *sizeQ]; - Q.q27[dirTS] = &QQ[dirTS *sizeQ]; - Q.q27[dirZERO] = &QQ[dirZERO*sizeQ]; - Q.q27[dirTNE] = &QQ[dirTNE *sizeQ]; - Q.q27[dirTSW] = &QQ[dirTSW *sizeQ]; - Q.q27[dirTSE] = &QQ[dirTSE *sizeQ]; - Q.q27[dirTNW] = &QQ[dirTNW *sizeQ]; - Q.q27[dirBNE] = &QQ[dirBNE *sizeQ]; - Q.q27[dirBSW] = &QQ[dirBSW *sizeQ]; - Q.q27[dirBSE] = &QQ[dirBSE *sizeQ]; - Q.q27[dirBNW] = &QQ[dirBNW *sizeQ]; - ////////////////////////////////////////////////////////////////// - int d = 0; - int j = 0; - int n = 0; - for (vector<vector<vector<doubflo> > >::iterator it = noslipQs.begin(); it != noslipQs.end(); it++) { - if (i == d) { - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - Q.q27[j][n] = *it3; - n++; - } - j++; // zaehlt die Spalte mit - n = 0; - } - } - d++; // zaehlt das Level mit - j = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - d = 0; - n = 0; - for (vector<vector<unsigned int> >::iterator it = noslipIndex.begin(); it != noslipIndex.end(); it++) { - if (i == d) { - for (vector<unsigned int>::iterator it2 = it->begin(); it2 != it->end(); it2++) { - para->getParH(i)->QWall.k[n] = *it2; - n++; - } - } - d++; - n = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyWallBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - }//ende oberste for schleife - - //--------------------------------------------------------------------------// - for (int i = 0; i <= level; i++) { - int temp2 = (int)slipQs[i][0].size(); - if (temp2 > 0) - { - cout << "Groesse Slip: " << i << " : " << temp2 << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->QSlip.kQ = temp2; - para->getParD(i)->QSlip.kQ = para->getParH(i)->QSlip.kQ; - para->getParH(i)->kSlipQ = para->getParH(i)->QSlip.kQ; - para->getParD(i)->kSlipQ = para->getParH(i)->QSlip.kQ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocSlipBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //preprocessing - doubflo* QQ = para->getParH(i)->QSlip.q27[0]; - unsigned int sizeQ = para->getParH(i)->QSlip.kQ; - QforBoundaryConditions Q; - Q.q27[dirE] = &QQ[dirE *sizeQ]; - Q.q27[dirW] = &QQ[dirW *sizeQ]; - Q.q27[dirN] = &QQ[dirN *sizeQ]; - Q.q27[dirS] = &QQ[dirS *sizeQ]; - Q.q27[dirT] = &QQ[dirT *sizeQ]; - Q.q27[dirB] = &QQ[dirB *sizeQ]; - Q.q27[dirNE] = &QQ[dirNE *sizeQ]; - Q.q27[dirSW] = &QQ[dirSW *sizeQ]; - Q.q27[dirSE] = &QQ[dirSE *sizeQ]; - Q.q27[dirNW] = &QQ[dirNW *sizeQ]; - Q.q27[dirTE] = &QQ[dirTE *sizeQ]; - Q.q27[dirBW] = &QQ[dirBW *sizeQ]; - Q.q27[dirBE] = &QQ[dirBE *sizeQ]; - Q.q27[dirTW] = &QQ[dirTW *sizeQ]; - Q.q27[dirTN] = &QQ[dirTN *sizeQ]; - Q.q27[dirBS] = &QQ[dirBS *sizeQ]; - Q.q27[dirBN] = &QQ[dirBN *sizeQ]; - Q.q27[dirTS] = &QQ[dirTS *sizeQ]; - Q.q27[dirZERO] = &QQ[dirZERO*sizeQ]; - Q.q27[dirTNE] = &QQ[dirTNE *sizeQ]; - Q.q27[dirTSW] = &QQ[dirTSW *sizeQ]; - Q.q27[dirTSE] = &QQ[dirTSE *sizeQ]; - Q.q27[dirTNW] = &QQ[dirTNW *sizeQ]; - Q.q27[dirBNE] = &QQ[dirBNE *sizeQ]; - Q.q27[dirBSW] = &QQ[dirBSW *sizeQ]; - Q.q27[dirBSE] = &QQ[dirBSE *sizeQ]; - Q.q27[dirBNW] = &QQ[dirBNW *sizeQ]; - ////////////////////////////////////////////////////////////////// - int d = 0; - int j = 0; - int n = 0; - for (vector<vector<vector<doubflo> > >::iterator it = slipQs.begin(); it != slipQs.end(); it++) { - if (i == d) { - for (vector<vector<doubflo> >::iterator it2 = it->begin(); it2 != it->end(); it2++){ - for (vector<doubflo>::iterator it3 = it2->begin(); it3 != it2->end(); it3++){ - Q.q27[j][n] = *it3; - n++; - } - j++; // zaehlt die Spalte mit - n = 0; - } - } - d++; // zaehlt das Level mit - j = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - d = 0; - n = 0; - for (vector<vector<unsigned int> >::iterator it = slipIndex.begin(); it != slipIndex.end(); it++) { - if (i == d) { - for (vector<unsigned int>::iterator it2 = it->begin(); it2 != it->end(); it2++) { - para->getParH(i)->QSlip.k[n] = *it2; - n++; - } - } - d++; - n = 0; - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopySlipBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - }//ende oberste for schleife - - - - //--------------------------------------------------------------------------// - if (para->getIsGeo()){ - for (int i = 0; i <= level; i++) { - int temp4 = obj_geomQ->getSize(i); - para->getParH(i)->QGeom.kQ = temp4; - para->getParD(i)->QGeom.kQ = para->getParH(i)->QGeom.kQ; - if (temp4 > 0) - { - cout << "Groesse der Daten GeomBoundaryQs, Level " << i << " : " << temp4 << endl; - cout << "Groesse der Daten GeomBoundaryQs, Level: " << i << " : " << temp4 << "MyID: " << para->getMyID() << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //para->getParH(i)->QGeom.kQ = temp4; - //para->getParD(i)->QGeom.kQ = para->getParH(i)->QGeom.kQ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocGeomBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //Indexarray - obj_geomQ->initIndex(para->getParH(i)->QGeom.k, i); - ////////////////////////////////////////////////////////////////////////// - //preprocessing - doubflo* QQ = para->getParH(i)->QGeom.q27[0]; - unsigned int sizeQ = para->getParH(i)->QGeom.kQ; - QforBoundaryConditions Q; - Q.q27[dirE] = &QQ[dirE *sizeQ]; - Q.q27[dirW] = &QQ[dirW *sizeQ]; - Q.q27[dirN] = &QQ[dirN *sizeQ]; - Q.q27[dirS] = &QQ[dirS *sizeQ]; - Q.q27[dirT] = &QQ[dirT *sizeQ]; - Q.q27[dirB] = &QQ[dirB *sizeQ]; - Q.q27[dirNE] = &QQ[dirNE *sizeQ]; - Q.q27[dirSW] = &QQ[dirSW *sizeQ]; - Q.q27[dirSE] = &QQ[dirSE *sizeQ]; - Q.q27[dirNW] = &QQ[dirNW *sizeQ]; - Q.q27[dirTE] = &QQ[dirTE *sizeQ]; - Q.q27[dirBW] = &QQ[dirBW *sizeQ]; - Q.q27[dirBE] = &QQ[dirBE *sizeQ]; - Q.q27[dirTW] = &QQ[dirTW *sizeQ]; - Q.q27[dirTN] = &QQ[dirTN *sizeQ]; - Q.q27[dirBS] = &QQ[dirBS *sizeQ]; - Q.q27[dirBN] = &QQ[dirBN *sizeQ]; - Q.q27[dirTS] = &QQ[dirTS *sizeQ]; - Q.q27[dirZERO] = &QQ[dirZERO*sizeQ]; - Q.q27[dirTNE] = &QQ[dirTNE *sizeQ]; - Q.q27[dirTSW] = &QQ[dirTSW *sizeQ]; - Q.q27[dirTSE] = &QQ[dirTSE *sizeQ]; - Q.q27[dirTNW] = &QQ[dirTNW *sizeQ]; - Q.q27[dirBNE] = &QQ[dirBNE *sizeQ]; - Q.q27[dirBSW] = &QQ[dirBSW *sizeQ]; - Q.q27[dirBSE] = &QQ[dirBSE *sizeQ]; - Q.q27[dirBNW] = &QQ[dirBNW *sizeQ]; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - obj_geomQ->initArray(Q.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - for(int test = 0; test < temp4; test++) - { - Q.q27[dirZERO][test] = 0.0f; - } - //for(int test = 0; test < 3; test++) - //{ - // for (int tmp = 0; tmp < 27; tmp++) - // { - // cout <<"Kuhs: " << Q.q27[tmp][test] << endl; - // } - //} - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // advection - diffusion stuff - if (para->getDiffOn()==true){ - ////////////////////////////////////////////////////////////////////////// - para->getParH(i)->Temp.kTemp = temp4; - para->getParD(i)->Temp.kTemp = temp4; - cout << "Groesse Temp.kTemp = " << para->getParH(i)->Temp.kTemp << endl; - ////////////////////////////////////////////////////////////////////////// - para->cudaAllocTempNoSlipBC(i); - ////////////////////////////////////////////////////////////////////////// - for (int m = 0; m < temp4; m++) - { - para->getParH(i)->Temp.temp[m] = para->getTemperatureInit(); - para->getParH(i)->Temp.k[m] = para->getParH(i)->QGeom.k[m]; - } - ////////////////////////////////////////////////////////////////////////// - para->cudaCopyTempNoSlipBCHD(i); - ////////////////////////////////////////////////////////////////////////// - } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyGeomBC(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - if (para->getIsGeoNormal()){ - int temp = obj_geomNormalX->getSize(i); - if (temp > 0) - { - cout << "Groesse der Daten GeomBoundaryNormalsX, Level " << i << " : " << temp << endl; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->getParH(i)->QGeomNormalX.kQ = temp; - para->getParH(i)->QGeomNormalY.kQ = temp; - para->getParH(i)->QGeomNormalZ.kQ = temp; - para->getParD(i)->QGeomNormalX.kQ = para->getParH(i)->QGeomNormalX.kQ; - para->getParD(i)->QGeomNormalY.kQ = para->getParH(i)->QGeomNormalY.kQ; - para->getParD(i)->QGeomNormalZ.kQ = para->getParH(i)->QGeomNormalZ.kQ; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaAllocGeomNormals(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //Indexarray - obj_geomNormalX->initIndex(para->getParH(i)->QGeomNormalX.k, i); - obj_geomNormalY->initIndex(para->getParH(i)->QGeomNormalY.k, i); - obj_geomNormalZ->initIndex(para->getParH(i)->QGeomNormalZ.k, i); - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing X - doubflo* QQX = para->getParH(i)->QGeomNormalX.q27[0]; - unsigned int sizeQX = para->getParH(i)->QGeomNormalX.kQ; - QforBoundaryConditions QX; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QX.q27[j] = &QQX[j * sizeQX]; - obj_geomNormalX->initArray(QX.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing Y - doubflo* QQY = para->getParH(i)->QGeomNormalY.q27[0]; - unsigned int sizeQY = para->getParH(i)->QGeomNormalY.kQ; - QforBoundaryConditions QY; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QY.q27[j] = &QQY[j * sizeQY]; - obj_geomNormalY->initArray(QY.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - ////////////////////////////////////////////////////////////////////////// - //preprocessing Z - doubflo* QQZ = para->getParH(i)->QGeomNormalZ.q27[0]; - unsigned int sizeQZ = para->getParH(i)->QGeomNormalZ.kQ; - QforBoundaryConditions QZ; - ////////////////////////////////////////////////////////////////// - for (int j = 0; j<27; j++) { - QZ.q27[j] = &QQZ[j * sizeQZ]; - obj_geomNormalZ->initArray(QZ.q27[j], i, j); - }//ende der for schleife - ////////////////////////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - para->cudaCopyGeomNormals(i); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - - } - } - }//ende oberstes for - //--------------------------------------------------------------------------// - //---------------------------------------------------------------------//BIS HIER CODE FUER MARTIN////-------------------------------------------------------------------// - - - for (int i = 0; i < t; i++) { - delete BC_Qs[i]; - } - - delete BC_Qs; - delete obj_geomQ; - - cout << "-----Ende BoundaryQs------" <<endl; - -} - -void Interface::setDimensions(Parameter* para) -{ - ifstream numberNodes; - numberNodes.open(para->getnumberNodes().c_str(), ios::in); - if (!numberNodes) { - cerr << "Fehler beim Oeffnen von file_NumberNodes" << para->getnumberNodes() << endl; - exit(1); - } - //Dimensionen einlesen - string buffer; - int bufferInt; - std::vector<int> localGridNX; - std::vector<int> localGridNY; - std::vector<int> localGridNZ; - - for (/*unsigned*/ int i = 0; i <= para->getMaxLevel(); i++) { - numberNodes >> buffer; - numberNodes >> bufferInt; - //cout << "X: " << bufferInt << endl; - localGridNX.push_back(bufferInt); - numberNodes >> bufferInt; - //cout << "Y: " << bufferInt << endl; - localGridNY.push_back(bufferInt); - numberNodes >> bufferInt; - //cout << "Z: " << bufferInt << endl; - localGridNZ.push_back(bufferInt); - } - para->setGridX(localGridNX); - para->setGridY(localGridNY); - para->setGridZ(localGridNZ); -} - -//Crap by Martin S. -void Interface::setBoundingBox(Parameter* para) -{ - ifstream numberNodes; - numberNodes.open(para->getLBMvsSI().c_str(), ios::in); - if (!numberNodes) { - cerr << "Fehler beim Oeffnen von file_LBMvsSI" << endl; - exit(1); - } - //Dimensionen Bounding Box einlesen - doubflo bufferDoubflo; - std::vector<doubflo> minX, maxX, minY, maxY, minZ, maxZ; - - for (int i = 0; i <= para->getMaxLevel(); i++) { - numberNodes >> bufferDoubflo; - //cout << "minX: " << bufferDoubflo << endl; - minX.push_back(bufferDoubflo); - numberNodes >> bufferDoubflo; - //cout << "minY: " << bufferDoubflo << endl; - minY.push_back(bufferDoubflo); - numberNodes >> bufferDoubflo; - //cout << "minZ: " << bufferDoubflo << endl; - minZ.push_back(bufferDoubflo); - numberNodes >> bufferDoubflo; - //cout << "maxX: " << bufferDoubflo << endl; - maxX.push_back(bufferDoubflo); - numberNodes >> bufferDoubflo; - //cout << "maxY: " << bufferDoubflo << endl; - maxY.push_back(bufferDoubflo); - numberNodes >> bufferDoubflo; - //cout << "maxZ: " << bufferDoubflo << endl; - maxZ.push_back(bufferDoubflo); - } - para->setMinCoordX(minX); - para->setMinCoordY(minY); - para->setMinCoordZ(minZ); - para->setMaxCoordX(maxX); - para->setMaxCoordY(maxY); - para->setMaxCoordZ(maxZ); - - //much more crap by Martin S. - std::string tmp; - std::vector<doubflo> scaleLBMtoSI; - std::vector<doubflo> translateLBMtoSI; - - while (getline(numberNodes, tmp)) - { - if (tmp == "from LBM to SI") - { - numberNodes >> tmp; - numberNodes >> bufferDoubflo; - scaleLBMtoSI.push_back(bufferDoubflo); - //cout << "Scale LBM to SI X: " << bufferDoubflo << endl; - numberNodes >> bufferDoubflo; - scaleLBMtoSI.push_back(bufferDoubflo); - //cout << "Scale LBM to SI Y: " << bufferDoubflo << endl; - numberNodes >> bufferDoubflo; - scaleLBMtoSI.push_back(bufferDoubflo); - //cout << "Scale LBM to SI Z: " << bufferDoubflo << endl; - numberNodes >> tmp; - numberNodes >> bufferDoubflo; - translateLBMtoSI.push_back(bufferDoubflo); - //cout << "Translate LBM to SI X: " << bufferDoubflo << endl; - numberNodes >> bufferDoubflo; - translateLBMtoSI.push_back(bufferDoubflo); - //cout << "Translate LBM to SI Y: " << bufferDoubflo << endl; - numberNodes >> bufferDoubflo; - translateLBMtoSI.push_back(bufferDoubflo); - //cout << "Translate LBM to SI Z: " << bufferDoubflo << endl; - } - } - para->setScaleLBMtoSI(scaleLBMtoSI); - para->setTranslateLBMtoSI(translateLBMtoSI); - - numberNodes.close(); - -} - -//Funktion zum ersetzten der periodischen Nachbarn---------------------------------------------------------------------------------- -void Interface::initPeriodicNeigh(vector<vector<vector<unsigned int> > > periodV, vector<vector<unsigned int> > periodIndex, string way) { - vector<unsigned int>neighVec; - vector<unsigned int>indexVec; - - int zaehler = 0; - - for(unsigned int i=0; i<neighX->getLevel();i++) { - if(way=="periodic_y"){ - neighVec = neighY->getVec(i); - //cout << " Test 1 " << endl; - } - else if(way=="periodic_x"){ - neighVec = neighX->getVec(i); - //cout << " Test 2 " << endl; - } - else if(way=="periodic_z"){ - neighVec = neighZ->getVec(i); - //cout << " Test 3 " << endl; - } - else { - cout << "Falscher String in periodicValue" << endl; - exit(1); - } - - //cout << " Test 4 " << endl; - - //cout << " i: " << i << endl; - ////cout << "Laenge neighVec:" << neighVec.size() << endl; - //cout << "Laenge periodIndex: " << periodIndex[i].size() << endl; - //cout << "Laenge 1 periodV: " << periodV.size() << endl; - //cout << "Laenge 2 periodV: " << periodV[i].size() << endl; - //cout << "Laenge 3 periodV: " << periodV[i][0].size() << endl; - - for (vector<unsigned int>::iterator it = periodIndex[i].begin(); it != periodIndex[i].end(); it++) { - if(periodV[i][0][zaehler] != 0) { - //cout << "Hier schreibe ich im Nachbarn: " << neighVec[*it] << " an der Stelle " << *it << " das rein: " << periodV[i][0][zaehler] << endl; - neighVec[*it]=periodV[i][0][zaehler]; - //cout << " zaehler 1: " << zaehler << endl; - } - //cout << " zaehler 2: " << zaehler << endl; - - zaehler++; - } - - - if(way=="periodic_y"){ - neighY->setVec(i, neighVec); - } - else if(way=="periodic_x"){ - neighX->setVec(i, neighVec); - } - else if(way=="periodic_z"){ - neighZ->setVec(i, neighVec); - } - - } -} - - -void Interface::sortSystem(BoundaryValues **BC_Values, Parameter *para, int t) { - - for (int i = 0; i < t; i++){ - if (system[i].compare("inlet") == 0){ BC_Values[i] = new BoundaryValues(para->getinletBcValues()); } - if (system[i].compare("outlet") == 0){ BC_Values[i] = new BoundaryValues(para->getoutletBcValues()); } - if (system[i].compare("back") == 0){ BC_Values[i] = new BoundaryValues(para->getbackBcValues()); } - if (system[i].compare("front") == 0){ BC_Values[i] = new BoundaryValues(para->getfrontBcValues()); } - if (system[i].compare("top") == 0){ BC_Values[i] = new BoundaryValues(para->gettopBcValues()); } - if (system[i].compare("bottom") == 0){ BC_Values[i] = new BoundaryValues(para->getbottomBcValues());} - } -} - -void Interface::sortSystem(BoundaryQs **BC_Qs, Parameter *para, int t) { - - for (int i = 0; i < t; i++){ - if (system[i].compare("inlet") == 0){ BC_Qs[i] = new BoundaryQs(para->getinletBcQs(), false); } - if (system[i].compare("outlet") == 0){ BC_Qs[i] = new BoundaryQs(para->getoutletBcQs(), false); } - if (system[i].compare("back") == 0){ BC_Qs[i] = new BoundaryQs(para->getbackBcQs(), false); } - if (system[i].compare("front") == 0){ BC_Qs[i] = new BoundaryQs(para->getfrontBcQs(), false); } - if (system[i].compare("top") == 0){ BC_Qs[i] = new BoundaryQs(para->gettopBcQs(), false); } - if (system[i].compare("bottom") == 0){ BC_Qs[i] = new BoundaryQs(para->getbottomBcQs(), false); } - } -} -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void Interface::rearrangeGeometry(Parameter* para, int lev) -{ - //redefine fluid nodes - for (int index = 0; index < para->getParH(lev)->size_Mat_SP; index++) - { - if (para->getParH(lev)->geoSP[index] == GEO_FLUID_OLD) - { - para->getParH(lev)->geoSP[index] = GEO_FLUID; - } - } -} -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Interface.h b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Interface.h deleted file mode 100644 index a74981313..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Interface.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once -#include "Standard.h" -//#include "VTKwriter.h" -#include "GPU/GPU_Interface.h" -#include "Parameter/Parameter.h" -#include "Temperature/FindTemperature.h" -#include "OffsetScale.h" -#include "BoundaryValues.h" -#include <cstdlib> - - -using namespace std; -class Interface -{ -private: - bool binaer; - string *system; - string *way; - CoordNeighborGeoV *neighX, *neighY, *neighZ, *neighWSB; -public: - Interface(bool binaer); - ~Interface(void); - void allocArrays_CoordNeighborGeo(Parameter* para); - void allocArrays_OffsetScale(Parameter* para); - void allocArrays_BoundaryValues(Parameter* para); - void allocArrays_BoundaryQs(Parameter* para); - bool getBinaer(); - void setDimensions(Parameter* para); - void setBoundingBox(Parameter* para); - void sortSystem(BoundaryValues **BC_Values, Parameter* para, int t); - void sortSystem(BoundaryQs **BC_Qs, Parameter* para, int t); - - void initPeriodicNeigh(vector<vector<vector<unsigned int> > > periodV, vector<vector<unsigned int> > periodIndex, string way); - - void rearrangeGeometry(Parameter* para, int lev); -}; - diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/MeasuredPoints.cpp b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/MeasuredPoints.cpp deleted file mode 100644 index 2416f75d4..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/MeasuredPoints.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "MeasuredPoints.h" -#include <stdlib.h> - -MeasuredPoints::MeasuredPoints(void) -{ -} - -MeasuredPoints::MeasuredPoints(string ad){ - file.open(ad.c_str(), ios::in | ios::binary); - - if (!file) { - cerr << "Fehler beim Oeffnen Measured Points" <<endl; - exit(1); - } - - this->init(); - -} - -MeasuredPoints::~MeasuredPoints(void) -{ -} - - - - -void MeasuredPoints::init() { - - string bufferString; - unsigned int bufferInt; - - getline(file,bufferString); - getline(file,bufferString);//level einlesen - level = atoi(bufferString.c_str()); - - this->vec_Size.resize(level); - this->vec2D_data.resize(level); - - for (int i=0; i<level;i++) { - getline(file,bufferString); - bufferInt = atoi(bufferString.c_str()); - - this->vec_Size[i]=bufferInt; - - this->vec2D_data[i].resize(vec_Size[i]); - if(vec_Size[i] != 0) { - for ( int j=0; j<vec_Size[i]; j++) { - getline(file,bufferString); - bufferInt = atoi(bufferString.c_str()); - this->vec2D_data[i][j]=bufferInt; - } - } - - - } - - - -} \ No newline at end of file diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/MeasuredPoints.h b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/MeasuredPoints.h deleted file mode 100644 index 74f7c1391..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/MeasuredPoints.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once -#include "Standard.h" -#include "CoordNeighborGeoV.h" - -using namespace std; - -class MeasuredPoints - : public CoordNeighborGeoV -{ -private: - -public: - MeasuredPoints(void); - MeasuredPoints(string ad); - ~MeasuredPoints(void); - - void init(); - -}; - diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/OffsetScale.cpp b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/OffsetScale.cpp deleted file mode 100644 index b8e571531..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/OffsetScale.cpp +++ /dev/null @@ -1,133 +0,0 @@ -#include "OffsetScale.h" -#include <stdio.h> -#include <stdlib.h> - -using namespace std; - -OffsetScale::OffsetScale(string ad, bool off) -{ - file.open(ad.c_str(), ios::in); - - if (!file) { - cerr << "Fehler beim Oeffnen" <<endl; - exit(1); - } - if(off==true){ - initOffset(); - }else { - init(); - } -} -OffsetScale::~OffsetScale(void) -{ - file.close(); -} - -void OffsetScale::init() { - //Level aus der ersten Zeile wird ausgelesen - string buffer; - unsigned int bufferInt; - - getline(file,buffer); - level = atoi(buffer.c_str()); - - //Schleife zum Einlesen der Levelgroessen - for(unsigned int i=1; i<=level; i++) { - getline(file,buffer); - unsigned int bufferInt = atoi(buffer.c_str()); //eingelesene Zeile wird zum Integer gecastet - vec_Size.push_back(bufferInt); - getline(file,buffer); //die Zeile mit den Koordinaten muss uebersprungen werden - } - - file.clear(); - file.seekg (0, ios::beg); // file wird wieder auf den Anfang gesetzt - getline(file,buffer); //level wird ignoriert - - - //einlesen der Werte - vec2D_data.resize(level+1); - for(unsigned lvl = 0; lvl < level; lvl++){/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// - getline(file,buffer); // Groesse ignorieren - for (unsigned int i = 0; i < vec_Size[lvl]; i++)/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// - { - file >> bufferInt; - vec2D_data[lvl].push_back(bufferInt); - } - getline(file, buffer); - } -} - -void OffsetScale::initOffset() { - file.clear(); - file.seekg (0, ios::beg); // file wird wieder auf den Anfang gesetzt - //Level aus der ersten Zeile wird ausgelesen - string buffer; - doubflo bufferDouble; - - getline(file,buffer); - stringstream s1(buffer); - s1 >> level; - - //Schleife zum Einlesen der Levelgroessen - for(unsigned int i=1; i<=level; i++) { - getline(file,buffer); - unsigned int bufferInt = atoi(buffer.c_str()); //eingelesene Zeile wird zum Integer gecastet - vec_Size.push_back(bufferInt); - getline(file,buffer); //die Zeile mit den Koordinaten muss uebersprungen werden - } - - file.seekg (0, ios::beg); // file wird wieder auf den Anfang gesetzt - getline(file,buffer); //level wird ignoriert - - //einlesen der werte - vec2D_dataOffset.resize(level+1); - for(unsigned lvl = 0; lvl < level; lvl++){/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// - getline(file,buffer); // Groesse ignorieren - for (unsigned int i = 0; i < vec_Size[lvl]*3; i++)/////////////Unterschied zu CoordNeighborGeoV: < statt <=////////////////////// - /////////////Unterschied zu Scale: vec_Size[lvl]*3 ////////////////////// - { - file >> bufferDouble; - vec2D_dataOffset[lvl].push_back(bufferDouble); - } - getline(file, buffer); - } -} - - -void OffsetScale::initArrayOffset(doubflo *x_ptr,doubflo *y_ptr,doubflo *z_ptr, unsigned int level) { - - int zaehler=0; - int n=0; - int x_help=0; - int y_help=1; - int z_help=2; - int x=0; - int y=0; - int z=0; - - if (x_ptr != NULL && y_ptr !=NULL && z_ptr !=NULL) { - for (vector<vector<doubflo> >::iterator it = vec2D_dataOffset.begin() ; it != vec2D_dataOffset.end(); it++) { - if(zaehler==level) { - for(vector<doubflo>::iterator it2 = it->begin(); it2 != it->end(); it2++){ - if(n==x_help){ - x_ptr[x]=*it2; - x_help=x_help+3; - x++; - } else if(n==y_help){ - y_ptr[y]=*it2; - y_help=y_help+3; - y++; - } else if(n==z_help){ - z_ptr[z]=*it2; - z_help=z_help+3; - z++; - } - n++; - } - } - zaehler++; - } - - } - -} \ No newline at end of file diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/OffsetScale.h b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/OffsetScale.h deleted file mode 100644 index 12f566211..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/OffsetScale.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once -#include "CoordNeighborGeoV.h" -class OffsetScale : - public CoordNeighborGeoV -{ -private: - vector<doubflo>vec1D_dataOffset; //das Feld mit Werten, temporär zum Füllen von vec2D - vector<vector<doubflo> >vec2D_dataOffset; //alle Felder mit Werten gegliedert nach Level -public: - OffsetScale(string ad, bool off); - ~OffsetScale(void); - void init(); - - void initOffset(); - void initArrayOffset(doubflo *x_ptr,doubflo *y_ptr,doubflo *z_ptr, unsigned int level); -}; - diff --git a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Standard.h b/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Standard.h deleted file mode 100644 index b70c291f6..000000000 --- a/gpu/src/VirtualFluids_GPU/Interface_OpenFOAM/Standard.h +++ /dev/null @@ -1,13 +0,0 @@ -#include <iostream> -#include <vector> -#include <fstream> -#include <sstream> -#include <string> -#include "math.h" -#include "stdint.h" - -#include "LBM/LB.h" - - - -//typedef double doubflo; \ No newline at end of file diff --git a/gpu/src/VirtualFluids_GPU/Output/FileWriter.cpp b/gpu/src/VirtualFluids_GPU/Output/FileWriter.cpp index e78641dca..16b56930f 100644 --- a/gpu/src/VirtualFluids_GPU/Output/FileWriter.cpp +++ b/gpu/src/VirtualFluids_GPU/Output/FileWriter.cpp @@ -20,7 +20,7 @@ #include "LBM/LB.h" #include "LBM/D3Q27.h" -#include <VirtualFluidsBasics/basics/writer/WbWriterVtkXmlBinary.h> +#include <basics/writer/WbWriterVtkXmlBinary.h> void FileWriter::writeInit(std::shared_ptr<Parameter> para, std::shared_ptr<CudaMemoryManager> cudaManager) { diff --git a/gpu/src/VirtualFluids_GPU/Output/UnstructuredGridWriter.hpp b/gpu/src/VirtualFluids_GPU/Output/UnstructuredGridWriter.hpp index 7e989d2c5..aebef163d 100644 --- a/gpu/src/VirtualFluids_GPU/Output/UnstructuredGridWriter.hpp +++ b/gpu/src/VirtualFluids_GPU/Output/UnstructuredGridWriter.hpp @@ -9,10 +9,10 @@ #include "LBM/LB.h" #include "LBM/D3Q27.h" #include "Parameter/Parameter.h" -#include "VirtualFluidsBasics/basics/utilities/UbSystem.h" -#include <VirtualFluidsBasics/basics/writer/WbWriterVtkXmlBinary.h> -#include <VirtualFluidsBasics/basics/writer/WbWriterVtkXmlASCII.h> -#include <VirtualFluidsBasics/basics/utilities/UbTuple.h> +#include "basics/utilities/UbSystem.h" +#include <basics/writer/WbWriterVtkXmlBinary.h> +#include <basics/writer/WbWriterVtkXmlASCII.h> +#include <basics/utilities/UbTuple.h> using namespace std; diff --git a/gpu/src/VirtualFluids_GPU/Parameter/Parameter.cpp b/gpu/src/VirtualFluids_GPU/Parameter/Parameter.cpp index daef7ff2e..0415003d2 100644 --- a/gpu/src/VirtualFluids_GPU/Parameter/Parameter.cpp +++ b/gpu/src/VirtualFluids_GPU/Parameter/Parameter.cpp @@ -17,8 +17,8 @@ #include "Core/Input/ConfigData/ConfigData.h" #include "Core/StringUtilities/StringUtil.h" -#include "VirtualFluids_GPU/Communication/Communicator.h" -#include "VirtualFluids_GPU/Kernel/Utilities/Mapper/KernelMapper/KernelMapper.h" +#include "Communication/Communicator.h" +#include "Kernel/Utilities/Mapper/KernelMapper/KernelMapper.h" //#ifdef WIN32 // #include <Winsock2.h> //#endif @@ -654,9 +654,9 @@ void Parameter::initParameter() parH[i]->mTtoWx = (real)pow(0.5f,i); parH[i]->mTtoWy = (real)pow(0.5f,i); parH[i]->mTtoWz = (real)pow(0.5f,i); - parH[i]->cTtoWx = (real)(STARTOFFX/2.f + (parH[i]->gridNX+1.f)/4.f); //funzt nur für zwei level - parH[i]->cTtoWy = (real)(STARTOFFY/2.f + (parH[i]->gridNY+1.f)/4.f); //funzt nur für zwei level - parH[i]->cTtoWz = (real)(STARTOFFZ/2.f + (parH[i]->gridNZ+1.f)/4.f); //funzt nur für zwei level + parH[i]->cTtoWx = (real)(STARTOFFX/2.f + (parH[i]->gridNX+1.f)/4.f); //funzt nur f�r zwei level + parH[i]->cTtoWy = (real)(STARTOFFY/2.f + (parH[i]->gridNY+1.f)/4.f); //funzt nur f�r zwei level + parH[i]->cTtoWz = (real)(STARTOFFZ/2.f + (parH[i]->gridNZ+1.f)/4.f); //funzt nur f�r zwei level ////MGs Trafo/////////////////////////////////////////////////////////////// //parH[i]->cStartx = (real)parH[i]->XdistKn; //parH[i]->cStarty = (real)parH[i]->XdistKn; @@ -896,21 +896,21 @@ void Parameter::fillSparse(int level) //parH[level]->vx_SP[parH[level]->k[m]] = (real)((32. * 32. * 3.) / (1000.*(real)parH[level]->gridNX));//(real)parH[level]->gridNX / (real)1000 * 3.0; //parH[level]->vy_SP[parH[level]->k[m]] = (real)((getVelocity() * sin(2.0 * i / parH[level]->gridNX * PI) * cos(2.0 * k / parH[level]->gridNZ * PI)) * (32. / (real)parH[level]->gridNX)); //parH[level]->vz_SP[parH[level]->k[m]] = (real)0.0f; - //schräg x + //schr�g x // parH[level]->vx_SP[parH[level]->k[m]] = (real)((32. * 32. * 3.)/(1000.*(real)parH[level]->gridNX) + (getVelocity() * cos((2.0 * k / parH[level]->gridNZ * PI) + (2.0 * i / parH[level]->gridNX * PI)))); // parH[level]->vy_SP[parH[level]->k[m]] = (real)0.0; // parH[level]->vz_SP[parH[level]->k[m]] = (real)(getVelocity() * cos((2.0 * k / parH[level]->gridNZ * PI) + (2.0 * i / parH[level]->gridNX * PI))); - //schräg z + //schr�g z //parH[level]->vx_SP[parH[level]->k[m]] = (real)(getVelocity() * std::cos((2.0 * k / parH[level]->gridNZ * PI) + (2.0 * i / parH[level]->gridNX * PI))); //parH[level]->vy_SP[parH[level]->k[m]] = (real)0.0; //parH[level]->vz_SP[parH[level]->k[m]] = (real)((32. * 32. * 3.)/(1000.*(real)parH[level]->gridNZ) + (getVelocity() * std::cos((2.0 * k / parH[level]->gridNZ * PI) + (2.0 * i / parH[level]->gridNX * PI)))); //Taylor Green Vortex uniform parH[level]->rho_SP[parH[level]->k[m]] = (real)((getVelocity()*getVelocity())*3.0/4.0*(cos((i)*4.0*PI/(real)parH[level]->gridNX)+cos((k)*4.0*PI/(real)parH[level]->gridNZ)))*(real)(parH[level]->gridNZ)/(real)(parH[level]->gridNX); - //inkl. überlagerter Geschwindigkeit + //inkl. �berlagerter Geschwindigkeit // parH[level]->vx_SP[parH[level]->k[m]] = (real)((32. * 32. * 3.)/(1000.*(real)parH[level]->gridNX) + getVelocity()*sin(((i)*2.0*PI/(real)parH[level]->gridNX))*cos((k)*2.0*PI/(real)parH[level]->gridNZ)); parH[level]->vx_SP[parH[level]->k[m]] = (real)((32. * 32. * 3.)/(1000. * 32.) * getVelocity() / 0.001 + getVelocity()*sin(((i)*2.0*PI/(real)parH[level]->gridNX))*cos((k)*2.0*PI/(real)parH[level]->gridNZ)); - //ohne überlagerter Geschwindigkeit + //ohne �berlagerter Geschwindigkeit // parH[level]->vx_SP[parH[level]->k[m]] = (real)(getVelocity()*sin(((i)*2.0*PI/(real)parH[level]->gridNX))*cos((k)*2.0*PI/(real)parH[level]->gridNZ)); parH[level]->vy_SP[parH[level]->k[m]] = (real)0.0; parH[level]->vz_SP[parH[level]->k[m]] = (real)(-getVelocity()*cos(((i)*2.0*PI/(real)parH[level]->gridNX))*sin((k)*2.0*PI/(real)parH[level]->gridNZ))*(real)(parH[level]->gridNZ)/(real)(parH[level]->gridNX); @@ -1708,7 +1708,7 @@ void Parameter::cudaFreeGeomValuesBC(int lev) checkCudaErrors( cudaFreeHost(parH[lev]->QGeom.Vy)); checkCudaErrors( cudaFreeHost(parH[lev]->QGeom.Vz)); } -//Geometrie inkl. Normale für Slip +//Geometrie inkl. Normale f�r Slip void Parameter::cudaAllocGeomNormals(int lev) { unsigned int mem_size_Q_k = sizeof(int)*parH[lev]->QGeomNormalX.kQ; @@ -1755,7 +1755,7 @@ void Parameter::cudaFreeGeomNormals(int lev) checkCudaErrors( cudaFreeHost(parH[lev]->QGeomNormalZ.q27[0])); checkCudaErrors( cudaFreeHost(parH[lev]->QGeomNormalZ.k)); } -//Geometrie inkl. Normale für Inflow +//Geometrie inkl. Normale f�r Inflow void Parameter::cudaAllocInflowNormals(int lev) { unsigned int mem_size_Q_k = sizeof(int)*parH[lev]->QInflowNormalX.kQ; @@ -1802,7 +1802,7 @@ void Parameter::cudaFreeInflowNormals(int lev) checkCudaErrors( cudaFreeHost(parH[lev]->QInflowNormalZ.q27[0])); checkCudaErrors( cudaFreeHost(parH[lev]->QInflowNormalZ.k)); } -//Geometrie inkl. Normale für Outflow +//Geometrie inkl. Normale f�r Outflow void Parameter::cudaAllocOutflowNormals(int lev) { unsigned int mem_size_Q_k = sizeof(int)*parH[lev]->QOutflowNormalX.kQ; diff --git a/gpu/src/GridGenerator/CMakeLists.txt b/src/gpu/GridGenerator/CMakeLists.txt similarity index 98% rename from gpu/src/GridGenerator/CMakeLists.txt rename to src/gpu/GridGenerator/CMakeLists.txt index 052da46b8..9e10f8bf0 100644 --- a/gpu/src/GridGenerator/CMakeLists.txt +++ b/src/gpu/GridGenerator/CMakeLists.txt @@ -19,7 +19,7 @@ include (${CMAKE_PATH}/3rd/OpenMP.cmake) vf_get_library_name(library_name) target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics") -target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/gpu/src") +target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/gpu") target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics/Core") diff --git a/gpu/src/GridGenerator/StreetPointFinder/JunctionReader.cpp b/src/gpu/GridGenerator/StreetPointFinder/JunctionReader.cpp similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/JunctionReader.cpp rename to src/gpu/GridGenerator/StreetPointFinder/JunctionReader.cpp diff --git a/gpu/src/GridGenerator/StreetPointFinder/JunctionReader.h b/src/gpu/GridGenerator/StreetPointFinder/JunctionReader.h similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/JunctionReader.h rename to src/gpu/GridGenerator/StreetPointFinder/JunctionReader.h diff --git a/gpu/src/GridGenerator/StreetPointFinder/SinkReader.cpp b/src/gpu/GridGenerator/StreetPointFinder/SinkReader.cpp similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/SinkReader.cpp rename to src/gpu/GridGenerator/StreetPointFinder/SinkReader.cpp diff --git a/gpu/src/GridGenerator/StreetPointFinder/SinkReader.h b/src/gpu/GridGenerator/StreetPointFinder/SinkReader.h similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/SinkReader.h rename to src/gpu/GridGenerator/StreetPointFinder/SinkReader.h diff --git a/gpu/src/GridGenerator/StreetPointFinder/SourceReader.cpp b/src/gpu/GridGenerator/StreetPointFinder/SourceReader.cpp similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/SourceReader.cpp rename to src/gpu/GridGenerator/StreetPointFinder/SourceReader.cpp diff --git a/gpu/src/GridGenerator/StreetPointFinder/SourceReader.h b/src/gpu/GridGenerator/StreetPointFinder/SourceReader.h similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/SourceReader.h rename to src/gpu/GridGenerator/StreetPointFinder/SourceReader.h diff --git a/gpu/src/GridGenerator/StreetPointFinder/StreetPointFinder.cpp b/src/gpu/GridGenerator/StreetPointFinder/StreetPointFinder.cpp similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/StreetPointFinder.cpp rename to src/gpu/GridGenerator/StreetPointFinder/StreetPointFinder.cpp diff --git a/gpu/src/GridGenerator/StreetPointFinder/StreetPointFinder.h b/src/gpu/GridGenerator/StreetPointFinder/StreetPointFinder.h similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/StreetPointFinder.h rename to src/gpu/GridGenerator/StreetPointFinder/StreetPointFinder.h diff --git a/gpu/src/GridGenerator/StreetPointFinder/package.include b/src/gpu/GridGenerator/StreetPointFinder/package.include similarity index 100% rename from gpu/src/GridGenerator/StreetPointFinder/package.include rename to src/gpu/GridGenerator/StreetPointFinder/package.include diff --git a/gpu/src/GridGenerator/geometries/Arrow/Arrow.h b/src/gpu/GridGenerator/geometries/Arrow/Arrow.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Arrow/Arrow.h rename to src/gpu/GridGenerator/geometries/Arrow/Arrow.h diff --git a/gpu/src/GridGenerator/geometries/Arrow/ArrowImp.cpp b/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.cpp similarity index 100% rename from gpu/src/GridGenerator/geometries/Arrow/ArrowImp.cpp rename to src/gpu/GridGenerator/geometries/Arrow/ArrowImp.cpp diff --git a/gpu/src/GridGenerator/geometries/Arrow/ArrowImp.h b/src/gpu/GridGenerator/geometries/Arrow/ArrowImp.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Arrow/ArrowImp.h rename to src/gpu/GridGenerator/geometries/Arrow/ArrowImp.h diff --git a/gpu/src/GridGenerator/geometries/Arrow/package.include b/src/gpu/GridGenerator/geometries/Arrow/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/Arrow/package.include rename to src/gpu/GridGenerator/geometries/Arrow/package.include diff --git a/gpu/src/GridGenerator/geometries/BoundingBox/BoundingBox.cu b/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/BoundingBox/BoundingBox.cu rename to src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.cu diff --git a/gpu/src/GridGenerator/geometries/BoundingBox/BoundingBox.h b/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.h similarity index 100% rename from gpu/src/GridGenerator/geometries/BoundingBox/BoundingBox.h rename to src/gpu/GridGenerator/geometries/BoundingBox/BoundingBox.h diff --git a/gpu/src/GridGenerator/geometries/BoundingBox/BoundingBoxTest.cpp b/src/gpu/GridGenerator/geometries/BoundingBox/BoundingBoxTest.cpp similarity index 100% rename from gpu/src/GridGenerator/geometries/BoundingBox/BoundingBoxTest.cpp rename to src/gpu/GridGenerator/geometries/BoundingBox/BoundingBoxTest.cpp diff --git a/gpu/src/GridGenerator/geometries/BoundingBox/package.include b/src/gpu/GridGenerator/geometries/BoundingBox/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/BoundingBox/package.include rename to src/gpu/GridGenerator/geometries/BoundingBox/package.include diff --git a/gpu/src/GridGenerator/geometries/Conglomerate/Conglomerate.cu b/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/Conglomerate/Conglomerate.cu rename to src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cu diff --git a/gpu/src/GridGenerator/geometries/Conglomerate/Conglomerate.h b/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Conglomerate/Conglomerate.h rename to src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.h diff --git a/gpu/src/GridGenerator/geometries/Conglomerate/package.include b/src/gpu/GridGenerator/geometries/Conglomerate/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/Conglomerate/package.include rename to src/gpu/GridGenerator/geometries/Conglomerate/package.include diff --git a/gpu/src/GridGenerator/geometries/Cuboid/Cuboid.cu b/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/Cuboid/Cuboid.cu rename to src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cu diff --git a/gpu/src/GridGenerator/geometries/Cuboid/Cuboid.h b/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Cuboid/Cuboid.h rename to src/gpu/GridGenerator/geometries/Cuboid/Cuboid.h diff --git a/gpu/src/GridGenerator/geometries/Cuboid/package.include b/src/gpu/GridGenerator/geometries/Cuboid/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/Cuboid/package.include rename to src/gpu/GridGenerator/geometries/Cuboid/package.include diff --git a/gpu/src/GridGenerator/geometries/Object.cu b/src/gpu/GridGenerator/geometries/Object.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/Object.cu rename to src/gpu/GridGenerator/geometries/Object.cu diff --git a/gpu/src/GridGenerator/geometries/Object.h b/src/gpu/GridGenerator/geometries/Object.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Object.h rename to src/gpu/GridGenerator/geometries/Object.h diff --git a/gpu/src/GridGenerator/geometries/Point/Point.cpp b/src/gpu/GridGenerator/geometries/Point/Point.cpp similarity index 100% rename from gpu/src/GridGenerator/geometries/Point/Point.cpp rename to src/gpu/GridGenerator/geometries/Point/Point.cpp diff --git a/gpu/src/GridGenerator/geometries/Point/Point.h b/src/gpu/GridGenerator/geometries/Point/Point.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Point/Point.h rename to src/gpu/GridGenerator/geometries/Point/Point.h diff --git a/gpu/src/GridGenerator/geometries/Point/package.include b/src/gpu/GridGenerator/geometries/Point/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/Point/package.include rename to src/gpu/GridGenerator/geometries/Point/package.include diff --git a/gpu/src/GridGenerator/geometries/Sphere/Sphere.cu b/src/gpu/GridGenerator/geometries/Sphere/Sphere.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/Sphere/Sphere.cu rename to src/gpu/GridGenerator/geometries/Sphere/Sphere.cu diff --git a/gpu/src/GridGenerator/geometries/Sphere/Sphere.h b/src/gpu/GridGenerator/geometries/Sphere/Sphere.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Sphere/Sphere.h rename to src/gpu/GridGenerator/geometries/Sphere/Sphere.h diff --git a/gpu/src/GridGenerator/geometries/Sphere/package.include b/src/gpu/GridGenerator/geometries/Sphere/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/Sphere/package.include rename to src/gpu/GridGenerator/geometries/Sphere/package.include diff --git a/gpu/src/GridGenerator/geometries/Triangle/Triangle.cu b/src/gpu/GridGenerator/geometries/Triangle/Triangle.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/Triangle/Triangle.cu rename to src/gpu/GridGenerator/geometries/Triangle/Triangle.cu diff --git a/gpu/src/GridGenerator/geometries/Triangle/Triangle.h b/src/gpu/GridGenerator/geometries/Triangle/Triangle.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Triangle/Triangle.h rename to src/gpu/GridGenerator/geometries/Triangle/Triangle.h diff --git a/gpu/src/GridGenerator/geometries/Triangle/TriangleException.h b/src/gpu/GridGenerator/geometries/Triangle/TriangleException.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Triangle/TriangleException.h rename to src/gpu/GridGenerator/geometries/Triangle/TriangleException.h diff --git a/gpu/src/GridGenerator/geometries/Triangle/package.include b/src/gpu/GridGenerator/geometries/Triangle/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/Triangle/package.include rename to src/gpu/GridGenerator/geometries/Triangle/package.include diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu rename to src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.h b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.h similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.h rename to src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.h diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp rename to src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.h b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.h similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.h rename to src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.h diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/package.include b/src/gpu/GridGenerator/geometries/TriangularMesh/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/package.include rename to src/gpu/GridGenerator/geometries/TriangularMesh/package.include diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.cpp b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.cpp similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.cpp rename to src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.cpp diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h rename to src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/package.include b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/package.include rename to src/gpu/GridGenerator/geometries/TriangularMesh/triangleNeighborFinder/package.include diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp rename to src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.cpp diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.h b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.h similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.h rename to src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/TriangleRefinement.h diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/triangleRefinement/package.include b/src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/TriangularMesh/triangleRefinement/package.include rename to src/gpu/GridGenerator/geometries/TriangularMesh/triangleRefinement/package.include diff --git a/gpu/src/GridGenerator/geometries/Vertex/Vertex.cu b/src/gpu/GridGenerator/geometries/Vertex/Vertex.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/Vertex/Vertex.cu rename to src/gpu/GridGenerator/geometries/Vertex/Vertex.cu diff --git a/gpu/src/GridGenerator/geometries/Vertex/Vertex.h b/src/gpu/GridGenerator/geometries/Vertex/Vertex.h similarity index 100% rename from gpu/src/GridGenerator/geometries/Vertex/Vertex.h rename to src/gpu/GridGenerator/geometries/Vertex/Vertex.h diff --git a/gpu/src/GridGenerator/geometries/Vertex/package.include b/src/gpu/GridGenerator/geometries/Vertex/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/Vertex/package.include rename to src/gpu/GridGenerator/geometries/Vertex/package.include diff --git a/gpu/src/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cu b/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cu similarity index 100% rename from gpu/src/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cu rename to src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cu diff --git a/gpu/src/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h b/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h similarity index 100% rename from gpu/src/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h rename to src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h diff --git a/gpu/src/GridGenerator/geometries/VerticalCylinder/package.include b/src/gpu/GridGenerator/geometries/VerticalCylinder/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/VerticalCylinder/package.include rename to src/gpu/GridGenerator/geometries/VerticalCylinder/package.include diff --git a/gpu/src/GridGenerator/geometries/package.include b/src/gpu/GridGenerator/geometries/package.include similarity index 100% rename from gpu/src/GridGenerator/geometries/package.include rename to src/gpu/GridGenerator/geometries/package.include diff --git a/gpu/src/GridGenerator/global.h b/src/gpu/GridGenerator/global.h similarity index 100% rename from gpu/src/GridGenerator/global.h rename to src/gpu/GridGenerator/global.h diff --git a/gpu/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp b/src/gpu/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp rename to src/gpu/GridGenerator/grid/BoundaryConditions/BoundaryCondition.cpp diff --git a/gpu/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h b/src/gpu/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h similarity index 100% rename from gpu/src/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h rename to src/gpu/GridGenerator/grid/BoundaryConditions/BoundaryCondition.h diff --git a/gpu/src/GridGenerator/grid/BoundaryConditions/Side.cpp b/src/gpu/GridGenerator/grid/BoundaryConditions/Side.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/BoundaryConditions/Side.cpp rename to src/gpu/GridGenerator/grid/BoundaryConditions/Side.cpp diff --git a/gpu/src/GridGenerator/grid/BoundaryConditions/Side.h b/src/gpu/GridGenerator/grid/BoundaryConditions/Side.h similarity index 100% rename from gpu/src/GridGenerator/grid/BoundaryConditions/Side.h rename to src/gpu/GridGenerator/grid/BoundaryConditions/Side.h diff --git a/gpu/src/GridGenerator/grid/BoundaryConditions/package.include b/src/gpu/GridGenerator/grid/BoundaryConditions/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/BoundaryConditions/package.include rename to src/gpu/GridGenerator/grid/BoundaryConditions/package.include diff --git a/gpu/src/GridGenerator/grid/Cell.h b/src/gpu/GridGenerator/grid/Cell.h similarity index 100% rename from gpu/src/GridGenerator/grid/Cell.h rename to src/gpu/GridGenerator/grid/Cell.h diff --git a/gpu/src/GridGenerator/grid/Field.cu b/src/gpu/GridGenerator/grid/Field.cu similarity index 100% rename from gpu/src/GridGenerator/grid/Field.cu rename to src/gpu/GridGenerator/grid/Field.cu diff --git a/gpu/src/GridGenerator/grid/Field.h b/src/gpu/GridGenerator/grid/Field.h similarity index 100% rename from gpu/src/GridGenerator/grid/Field.h rename to src/gpu/GridGenerator/grid/Field.h diff --git a/gpu/src/GridGenerator/grid/Grid.h b/src/gpu/GridGenerator/grid/Grid.h similarity index 100% rename from gpu/src/GridGenerator/grid/Grid.h rename to src/gpu/GridGenerator/grid/Grid.h diff --git a/gpu/src/GridGenerator/grid/GridBuilder/GridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/GridBuilder.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridBuilder/GridBuilder.h rename to src/gpu/GridGenerator/grid/GridBuilder/GridBuilder.h diff --git a/gpu/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp rename to src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp diff --git a/gpu/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h rename to src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h diff --git a/gpu/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp rename to src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp diff --git a/gpu/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h rename to src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h diff --git a/gpu/src/GridGenerator/grid/GridBuilder/package.include b/src/gpu/GridGenerator/grid/GridBuilder/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/GridBuilder/package.include rename to src/gpu/GridGenerator/grid/GridBuilder/package.include diff --git a/gpu/src/GridGenerator/grid/GridFactory.cpp b/src/gpu/GridGenerator/grid/GridFactory.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/GridFactory.cpp rename to src/gpu/GridGenerator/grid/GridFactory.cpp diff --git a/gpu/src/GridGenerator/grid/GridFactory.h b/src/gpu/GridGenerator/grid/GridFactory.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridFactory.h rename to src/gpu/GridGenerator/grid/GridFactory.h diff --git a/gpu/src/GridGenerator/grid/GridImp.cu b/src/gpu/GridGenerator/grid/GridImp.cu similarity index 100% rename from gpu/src/GridGenerator/grid/GridImp.cu rename to src/gpu/GridGenerator/grid/GridImp.cu diff --git a/gpu/src/GridGenerator/grid/GridImp.h b/src/gpu/GridGenerator/grid/GridImp.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridImp.h rename to src/gpu/GridGenerator/grid/GridImp.h diff --git a/gpu/src/GridGenerator/grid/GridInterface.cu b/src/gpu/GridGenerator/grid/GridInterface.cu similarity index 100% rename from gpu/src/GridGenerator/grid/GridInterface.cu rename to src/gpu/GridGenerator/grid/GridInterface.cu diff --git a/gpu/src/GridGenerator/grid/GridInterface.h b/src/gpu/GridGenerator/grid/GridInterface.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridInterface.h rename to src/gpu/GridGenerator/grid/GridInterface.h diff --git a/gpu/src/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp b/src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp rename to src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.cpp diff --git a/gpu/src/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.h b/src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.h rename to src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/GridCpuStrategy.h diff --git a/gpu/src/GridGenerator/grid/GridStrategy/GridCpuStrategy/package.include b/src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/GridStrategy/GridCpuStrategy/package.include rename to src/gpu/GridGenerator/grid/GridStrategy/GridCpuStrategy/package.include diff --git a/gpu/src/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.cpp b/src/gpu/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.cpp rename to src/gpu/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.cpp diff --git a/gpu/src/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.h b/src/gpu/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.h rename to src/gpu/GridGenerator/grid/GridStrategy/GridGpuStrategy/GridGpuStrategy.h diff --git a/gpu/src/GridGenerator/grid/GridStrategy/GridGpuStrategy/package.include b/src/gpu/GridGenerator/grid/GridStrategy/GridGpuStrategy/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/GridStrategy/GridGpuStrategy/package.include rename to src/gpu/GridGenerator/grid/GridStrategy/GridGpuStrategy/package.include diff --git a/gpu/src/GridGenerator/grid/GridStrategy/GridStrategy.h b/src/gpu/GridGenerator/grid/GridStrategy/GridStrategy.h similarity index 100% rename from gpu/src/GridGenerator/grid/GridStrategy/GridStrategy.h rename to src/gpu/GridGenerator/grid/GridStrategy/GridStrategy.h diff --git a/gpu/src/GridGenerator/grid/GridStrategy/package.include b/src/gpu/GridGenerator/grid/GridStrategy/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/GridStrategy/package.include rename to src/gpu/GridGenerator/grid/GridStrategy/package.include diff --git a/gpu/src/GridGenerator/grid/NodeValues.h b/src/gpu/GridGenerator/grid/NodeValues.h similarity index 100% rename from gpu/src/GridGenerator/grid/NodeValues.h rename to src/gpu/GridGenerator/grid/NodeValues.h diff --git a/gpu/src/GridGenerator/grid/distributions/D3Q13.h b/src/gpu/GridGenerator/grid/distributions/D3Q13.h similarity index 100% rename from gpu/src/GridGenerator/grid/distributions/D3Q13.h rename to src/gpu/GridGenerator/grid/distributions/D3Q13.h diff --git a/gpu/src/GridGenerator/grid/distributions/D3Q19.h b/src/gpu/GridGenerator/grid/distributions/D3Q19.h similarity index 100% rename from gpu/src/GridGenerator/grid/distributions/D3Q19.h rename to src/gpu/GridGenerator/grid/distributions/D3Q19.h diff --git a/gpu/src/GridGenerator/grid/distributions/D3Q27.h b/src/gpu/GridGenerator/grid/distributions/D3Q27.h similarity index 100% rename from gpu/src/GridGenerator/grid/distributions/D3Q27.h rename to src/gpu/GridGenerator/grid/distributions/D3Q27.h diff --git a/gpu/src/GridGenerator/grid/distributions/D3Q7.h b/src/gpu/GridGenerator/grid/distributions/D3Q7.h similarity index 100% rename from gpu/src/GridGenerator/grid/distributions/D3Q7.h rename to src/gpu/GridGenerator/grid/distributions/D3Q7.h diff --git a/gpu/src/GridGenerator/grid/distributions/Distribution.cpp b/src/gpu/GridGenerator/grid/distributions/Distribution.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/distributions/Distribution.cpp rename to src/gpu/GridGenerator/grid/distributions/Distribution.cpp diff --git a/gpu/src/GridGenerator/grid/distributions/Distribution.h b/src/gpu/GridGenerator/grid/distributions/Distribution.h similarity index 100% rename from gpu/src/GridGenerator/grid/distributions/Distribution.h rename to src/gpu/GridGenerator/grid/distributions/Distribution.h diff --git a/gpu/src/GridGenerator/grid/distributions/package.include b/src/gpu/GridGenerator/grid/distributions/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/distributions/package.include rename to src/gpu/GridGenerator/grid/distributions/package.include diff --git a/gpu/src/GridGenerator/grid/kernel/package.include b/src/gpu/GridGenerator/grid/kernel/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/kernel/package.include rename to src/gpu/GridGenerator/grid/kernel/package.include diff --git a/gpu/src/GridGenerator/grid/kernel/runGridKernelGPU.cu b/src/gpu/GridGenerator/grid/kernel/runGridKernelGPU.cu similarity index 100% rename from gpu/src/GridGenerator/grid/kernel/runGridKernelGPU.cu rename to src/gpu/GridGenerator/grid/kernel/runGridKernelGPU.cu diff --git a/gpu/src/GridGenerator/grid/kernel/runGridKernelGPU.cuh b/src/gpu/GridGenerator/grid/kernel/runGridKernelGPU.cuh similarity index 100% rename from gpu/src/GridGenerator/grid/kernel/runGridKernelGPU.cuh rename to src/gpu/GridGenerator/grid/kernel/runGridKernelGPU.cuh diff --git a/gpu/src/GridGenerator/grid/package.include b/src/gpu/GridGenerator/grid/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/package.include rename to src/gpu/GridGenerator/grid/package.include diff --git a/gpu/src/GridGenerator/grid/partition/Partition.cpp b/src/gpu/GridGenerator/grid/partition/Partition.cpp similarity index 100% rename from gpu/src/GridGenerator/grid/partition/Partition.cpp rename to src/gpu/GridGenerator/grid/partition/Partition.cpp diff --git a/gpu/src/GridGenerator/grid/partition/Partition.h b/src/gpu/GridGenerator/grid/partition/Partition.h similarity index 100% rename from gpu/src/GridGenerator/grid/partition/Partition.h rename to src/gpu/GridGenerator/grid/partition/Partition.h diff --git a/gpu/src/GridGenerator/grid/partition/package.include b/src/gpu/GridGenerator/grid/partition/package.include similarity index 100% rename from gpu/src/GridGenerator/grid/partition/package.include rename to src/gpu/GridGenerator/grid/partition/package.include diff --git a/gpu/src/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp b/src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp similarity index 100% rename from gpu/src/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp rename to src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp diff --git a/gpu/src/GridGenerator/io/GridVTKWriter/GridVTKWriter.h b/src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.h similarity index 100% rename from gpu/src/GridGenerator/io/GridVTKWriter/GridVTKWriter.h rename to src/gpu/GridGenerator/io/GridVTKWriter/GridVTKWriter.h diff --git a/gpu/src/GridGenerator/io/GridVTKWriter/package.include b/src/gpu/GridGenerator/io/GridVTKWriter/package.include similarity index 100% rename from gpu/src/GridGenerator/io/GridVTKWriter/package.include rename to src/gpu/GridGenerator/io/GridVTKWriter/package.include diff --git a/gpu/src/GridGenerator/io/QLineWriter.cpp b/src/gpu/GridGenerator/io/QLineWriter.cpp similarity index 100% rename from gpu/src/GridGenerator/io/QLineWriter.cpp rename to src/gpu/GridGenerator/io/QLineWriter.cpp diff --git a/gpu/src/GridGenerator/io/QLineWriter.h b/src/gpu/GridGenerator/io/QLineWriter.h similarity index 100% rename from gpu/src/GridGenerator/io/QLineWriter.h rename to src/gpu/GridGenerator/io/QLineWriter.h diff --git a/gpu/src/GridGenerator/io/STLReaderWriter/STLReader.cpp b/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.cpp similarity index 100% rename from gpu/src/GridGenerator/io/STLReaderWriter/STLReader.cpp rename to src/gpu/GridGenerator/io/STLReaderWriter/STLReader.cpp diff --git a/gpu/src/GridGenerator/io/STLReaderWriter/STLReader.h b/src/gpu/GridGenerator/io/STLReaderWriter/STLReader.h similarity index 100% rename from gpu/src/GridGenerator/io/STLReaderWriter/STLReader.h rename to src/gpu/GridGenerator/io/STLReaderWriter/STLReader.h diff --git a/gpu/src/GridGenerator/io/STLReaderWriter/STLWriter.cpp b/src/gpu/GridGenerator/io/STLReaderWriter/STLWriter.cpp similarity index 100% rename from gpu/src/GridGenerator/io/STLReaderWriter/STLWriter.cpp rename to src/gpu/GridGenerator/io/STLReaderWriter/STLWriter.cpp diff --git a/gpu/src/GridGenerator/io/STLReaderWriter/STLWriter.h b/src/gpu/GridGenerator/io/STLReaderWriter/STLWriter.h similarity index 100% rename from gpu/src/GridGenerator/io/STLReaderWriter/STLWriter.h rename to src/gpu/GridGenerator/io/STLReaderWriter/STLWriter.h diff --git a/gpu/src/GridGenerator/io/STLReaderWriter/package.include b/src/gpu/GridGenerator/io/STLReaderWriter/package.include similarity index 100% rename from gpu/src/GridGenerator/io/STLReaderWriter/package.include rename to src/gpu/GridGenerator/io/STLReaderWriter/package.include diff --git a/gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp similarity index 100% rename from gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp rename to src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.cpp diff --git a/gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h similarity index 100% rename from gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h rename to src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileNames.h diff --git a/gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp similarity index 100% rename from gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp rename to src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.cpp diff --git a/gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h b/src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h similarity index 100% rename from gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h rename to src/gpu/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h diff --git a/gpu/src/GridGenerator/io/SimulationFileWriter/package.include b/src/gpu/GridGenerator/io/SimulationFileWriter/package.include similarity index 100% rename from gpu/src/GridGenerator/io/SimulationFileWriter/package.include rename to src/gpu/GridGenerator/io/SimulationFileWriter/package.include diff --git a/gpu/src/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.cpp b/src/gpu/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.cpp similarity index 100% rename from gpu/src/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.cpp rename to src/gpu/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.cpp diff --git a/gpu/src/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.h b/src/gpu/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.h similarity index 100% rename from gpu/src/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.h rename to src/gpu/GridGenerator/io/VTKWriterWrapper/PolyDataWriterWrapper.h diff --git a/gpu/src/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.cpp b/src/gpu/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.cpp similarity index 100% rename from gpu/src/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.cpp rename to src/gpu/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.cpp diff --git a/gpu/src/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.h b/src/gpu/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.h similarity index 100% rename from gpu/src/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.h rename to src/gpu/GridGenerator/io/VTKWriterWrapper/UnstructuredGridWrapper.h diff --git a/gpu/src/GridGenerator/io/VTKWriterWrapper/package.include b/src/gpu/GridGenerator/io/VTKWriterWrapper/package.include similarity index 100% rename from gpu/src/GridGenerator/io/VTKWriterWrapper/package.include rename to src/gpu/GridGenerator/io/VTKWriterWrapper/package.include diff --git a/gpu/src/GridGenerator/io/package.include b/src/gpu/GridGenerator/io/package.include similarity index 100% rename from gpu/src/GridGenerator/io/package.include rename to src/gpu/GridGenerator/io/package.include diff --git a/gpu/src/GridGenerator/package.include b/src/gpu/GridGenerator/package.include similarity index 100% rename from gpu/src/GridGenerator/package.include rename to src/gpu/GridGenerator/package.include diff --git a/gpu/src/GridGenerator/utilities/communication.h b/src/gpu/GridGenerator/utilities/communication.h similarity index 100% rename from gpu/src/GridGenerator/utilities/communication.h rename to src/gpu/GridGenerator/utilities/communication.h diff --git a/gpu/src/GridGenerator/utilities/cuda/CudaErrorCheck.cu b/src/gpu/GridGenerator/utilities/cuda/CudaErrorCheck.cu similarity index 100% rename from gpu/src/GridGenerator/utilities/cuda/CudaErrorCheck.cu rename to src/gpu/GridGenerator/utilities/cuda/CudaErrorCheck.cu diff --git a/gpu/src/GridGenerator/utilities/cuda/LaunchParameter.cu b/src/gpu/GridGenerator/utilities/cuda/LaunchParameter.cu similarity index 100% rename from gpu/src/GridGenerator/utilities/cuda/LaunchParameter.cu rename to src/gpu/GridGenerator/utilities/cuda/LaunchParameter.cu diff --git a/gpu/src/GridGenerator/utilities/cuda/LaunchParameter.cuh b/src/gpu/GridGenerator/utilities/cuda/LaunchParameter.cuh similarity index 100% rename from gpu/src/GridGenerator/utilities/cuda/LaunchParameter.cuh rename to src/gpu/GridGenerator/utilities/cuda/LaunchParameter.cuh diff --git a/gpu/src/GridGenerator/utilities/cuda/cudaDefines.h b/src/gpu/GridGenerator/utilities/cuda/cudaDefines.h similarity index 100% rename from gpu/src/GridGenerator/utilities/cuda/cudaDefines.h rename to src/gpu/GridGenerator/utilities/cuda/cudaDefines.h diff --git a/gpu/src/GridGenerator/utilities/cuda/cudaKernelCall.h b/src/gpu/GridGenerator/utilities/cuda/cudaKernelCall.h similarity index 100% rename from gpu/src/GridGenerator/utilities/cuda/cudaKernelCall.h rename to src/gpu/GridGenerator/utilities/cuda/cudaKernelCall.h diff --git a/gpu/src/GridGenerator/utilities/cuda/package.include b/src/gpu/GridGenerator/utilities/cuda/package.include similarity index 100% rename from gpu/src/GridGenerator/utilities/cuda/package.include rename to src/gpu/GridGenerator/utilities/cuda/package.include diff --git a/gpu/src/GridGenerator/utilities/math/Math.cu b/src/gpu/GridGenerator/utilities/math/Math.cu similarity index 100% rename from gpu/src/GridGenerator/utilities/math/Math.cu rename to src/gpu/GridGenerator/utilities/math/Math.cu diff --git a/gpu/src/GridGenerator/utilities/math/Math.h b/src/gpu/GridGenerator/utilities/math/Math.h similarity index 100% rename from gpu/src/GridGenerator/utilities/math/Math.h rename to src/gpu/GridGenerator/utilities/math/Math.h diff --git a/gpu/src/GridGenerator/utilities/math/package.include b/src/gpu/GridGenerator/utilities/math/package.include similarity index 100% rename from gpu/src/GridGenerator/utilities/math/package.include rename to src/gpu/GridGenerator/utilities/math/package.include diff --git a/gpu/src/GridGenerator/utilities/package.include b/src/gpu/GridGenerator/utilities/package.include similarity index 100% rename from gpu/src/GridGenerator/utilities/package.include rename to src/gpu/GridGenerator/utilities/package.include diff --git a/gpu/src/GridGenerator/utilities/transformator/ArrowTransformator.cpp b/src/gpu/GridGenerator/utilities/transformator/ArrowTransformator.cpp similarity index 100% rename from gpu/src/GridGenerator/utilities/transformator/ArrowTransformator.cpp rename to src/gpu/GridGenerator/utilities/transformator/ArrowTransformator.cpp diff --git a/gpu/src/GridGenerator/utilities/transformator/ArrowTransformator.h b/src/gpu/GridGenerator/utilities/transformator/ArrowTransformator.h similarity index 100% rename from gpu/src/GridGenerator/utilities/transformator/ArrowTransformator.h rename to src/gpu/GridGenerator/utilities/transformator/ArrowTransformator.h diff --git a/gpu/src/GridGenerator/utilities/transformator/Transformator.cpp b/src/gpu/GridGenerator/utilities/transformator/Transformator.cpp similarity index 100% rename from gpu/src/GridGenerator/utilities/transformator/Transformator.cpp rename to src/gpu/GridGenerator/utilities/transformator/Transformator.cpp diff --git a/gpu/src/GridGenerator/utilities/transformator/Transformator.h b/src/gpu/GridGenerator/utilities/transformator/Transformator.h similarity index 100% rename from gpu/src/GridGenerator/utilities/transformator/Transformator.h rename to src/gpu/GridGenerator/utilities/transformator/Transformator.h diff --git a/gpu/src/GridGenerator/utilities/transformator/TransformatorImp.cpp b/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.cpp similarity index 100% rename from gpu/src/GridGenerator/utilities/transformator/TransformatorImp.cpp rename to src/gpu/GridGenerator/utilities/transformator/TransformatorImp.cpp diff --git a/gpu/src/GridGenerator/utilities/transformator/TransformatorImp.h b/src/gpu/GridGenerator/utilities/transformator/TransformatorImp.h similarity index 100% rename from gpu/src/GridGenerator/utilities/transformator/TransformatorImp.h rename to src/gpu/GridGenerator/utilities/transformator/TransformatorImp.h diff --git a/gpu/src/GridGenerator/utilities/transformator/package.include b/src/gpu/GridGenerator/utilities/transformator/package.include similarity index 100% rename from gpu/src/GridGenerator/utilities/transformator/package.include rename to src/gpu/GridGenerator/utilities/transformator/package.include -- GitLab